本文實例講述了PHP基于雙向鏈表與排序操作實現(xiàn)的會員排名功能。分享給大家供大家參考,具體如下:
雙向鏈表也叫雙鏈表,是鏈表的一種,它的每個數(shù)據結點中都有兩個指針,分別指向直接后繼和直接前驅。所以,從雙向鏈表中的任意一個結點開始,都可以很方便地訪問它的前驅結點和后繼結點。如果不清楚概念的請自行百度。
?php * 雙向鏈表實現(xiàn)用戶排行榜 * 僅用于體現(xiàn)思想邏輯,不具備實際參考價值 * @author 瘋狂老司機 * @date 2016-07-07html' target='_blank'>class Rank{ * @var 指向前一個節(jié)點的引用 public $pre = null; * @var 指向后一個節(jié)點的引用 public $next = null; * @var 用戶排行id public $id; * @var 用戶名稱 public $username; public function __construct($id = , $username = ){ $this- id = $id; $this- username = $username; * 添加成員節(jié)點方法 * @access public * @param obj head 初始節(jié)點 * @param obj rank 成員節(jié)點 public static function addRank($head, $rank){ $cur = $head; // 輔助節(jié)點 $isExist = false; //這是一個標志位 while($cur- next != null){ if($cur- next- id $rank- id){ break; }else if($cur- next- id == $rank- id){ $isExist = true; echo br/ 不能添加相同的id $cur = $cur- next; if(!$isExist){ if($cur- next != null){ $rank- next = $cur- next; $rank- pre = $cur; if($cur- next != null){ $cur- next- pre = $rank; $cur- next = $rank; * 刪除成員節(jié)點方法 * @access public * @param obj head 初始節(jié)點 * @param obj rankid 用戶排行id public static function delRank($head, $rankid){ $cur = $head- next; $isFind = flase; // 標記位 while($cur != null){ if($cur- id == $rankid){ $isFind = true; break; $cur = $cur- next; if($isFind){ if($cur- next != null){ $cur- next- pre = $cur- $cur- pre- next = $cur- next; echo br/ 要刪除的成員id是 .$cur- }else{ echo br/ 要刪除的成員沒有 * 遍歷所有節(jié)點并輸出顯示 * @access public * @param obj head 初始節(jié)點 public static function showRank($head){ $cur = $head- next; // 不打印空節(jié)點 while($cur- next != null){ echo br/ id= .$cur- id. . username= .$cur- username; $cur = $cur- next; echo br/ id= .$cur- id. . username= .$cur- username;//創(chuàng)建一個初始節(jié)點$head=new Rank();//創(chuàng)建一個成員$rank=new Rank(1, 老王 Rank::addRank($head,$rank);$rank=new Rank(2, 小明 Rank::addRank($head,$rank);$rank=new Rank(6, 大熊 Rank::addRank($head,$rank);$rank=new Rank(3, 靜香 Rank::addRank($head,$rank);$rank=new Rank(56, 孫二娘 Rank::addRank($head,$rank);echo br/ 成員排行榜..... Rank::showRank($head);echo br/ echo br/ 刪除后的成員排行榜..... Rank::delRank($head,3);Rank::showRank($head);echo br/ echo br/ 下面測試刪除最前面的和最后面的成員 br/ echo br/ 刪除后的成員排行榜..... Rank::delRank($head,1);Rank::showRank($head);echo br/ echo br/ 刪除后的成員排行榜..... Rank::delRank($head,56);Rank::showRank($head);?
運行結果:
成員排行榜.....id=1 username=老王id=2 username=小明id=3 username=靜香id=6 username=大熊id=56 username=孫二娘刪除后的成員排行榜.....要刪除的成員id是3id=1 username=老王id=2 username=小明id=6 username=大熊id=56 username=孫二娘下面測試刪除最前面的和最后面的成員刪除后的成員排行榜.....要刪除的成員id是1id=2 username=小明id=6 username=大熊id=56 username=孫二娘刪除后的成員排行榜.....要刪除的成員id是56id=2 username=小明id=6 username=大熊
PHP實現(xiàn)求連續(xù)子數(shù)組最大和問題2種解決方法講解
php獲取ajax的headers方法與內容實例講解
Laravel中使用Queue的最基本操作教程講解
以上就是PHP基于雙向鏈表與排序操作實現(xiàn)的會員排名功能示例詳解的詳細內容,PHP教程
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。
|
新聞熱點
疑難解答