源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

PHP小教程之实现双向链表

  • 时间:2022-06-01 21:06 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:PHP小教程之实现双向链表
看了很久数据结构但是没有怎么用过,在网上看到了关于PHP的数据结构,学习了一下,与大家一起分享一下。上一次分享了《[url=http://www.1sucai.cn/article/50836.htm]PHP小教程之实现链表[/url]》,这次来补充说一下双向链表。
[u]复制代码[/u] 代码如下:
<?php         class 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); ?>
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部