PHP实现双向链表
看了很久數據結構但是沒有怎么用過,在網上看到了關于PHP的數據結構,學習了一下,與大家一起分享一下。上一次分享了鏈表,這次來補充說一下雙向鏈表。
簡短不割????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
<?phpclass Hero{public $pre=null;public $no;public $name;public $next=null;public function __construct($no='',$name=''){$this->no=$no;$this->name=$name;}static public function addHero($head,$hero){$cur = $head;$isExist=false;//判斷目前這個鏈表是否為空if($cur->next==null){$cur->next=$hero;$hero->pre=$cur;}else{//如果不是空節點,則安排名來添加//找到添加的位置while($cur->next!=null){if($cur->next->no > $hero->no){break;}else if($cur->next->no == $hero->no){$isExist=true;echo "<br>不能添加相同的編號";}$cur=$cur->next;}if(!$isExist){if($cur->next!=null){$hero->next=$cur->next;}$hero->pre=$cur;if($cur->next!=null){$hero->next->pre=$hero;}$cur->next=$hero; }}}//遍歷static public function showHero($head){$cur=$head;while($cur->next!=null){echo "<br>編號:".$cur->next->no."名字:".$cur->next->name;$cur=$cur->next;}}static public function delHero($head,$herono){$cur=$head;$isFind=false;while($cur!=null){if($cur->no==$herono){$isFind=true;break;}//繼續找$cur=$cur->next;}if($isFind){if($cur->next!=null){$cur->next_pre=$cur->pre;}$cur->pre->next=$cur->next;}else{echo "<br>沒有找到目標";} }}$head = new Hero();$hero1 = new Hero(1,'1111');$hero3 = new Hero(3,'3333');$hero2 = new Hero(2,'2222');Hero::addHero($head,$hero1);Hero::addHero($head,$hero3);Hero::addHero($head,$hero2);Hero::showHero($head);Hero::delHero($head,2);Hero::showHero($head); ?>我是天王蓋地虎的分割線????????????????????????????????????????????????????????????????
《PHP實現鏈表》傳送門:http://www.cnblogs.com/yydcdut/p/3777760.html
?
?
?
轉載請注明出處:http://www.cnblogs.com/yydcdut
總結
- 上一篇: Free Download Top 10
- 下一篇: 【Unity技巧】制作一个简单的NPC