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

源码网商城

PHP小教程之实现链表

  • 时间:2020-03-06 19:54 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:PHP小教程之实现链表
看了很久数据结构但是没有怎么用过,在网上看到了关于PHP的数据结构,学习了一下,与大家一起分享一下。
[u]复制代码[/u] 代码如下:
class Hero {     public $no;//排名     public $name;//名字     public $next=null;//$next是一个引用,指向另外一个Hero的对象实例     public function __construct($no='',$name='')     {         $this->no=$no;         $this->name=$name;     }     static public function showList($head)     {         $cur = $head;         while($cur->next!=null)         {             echo "排名:".$cur->next->no.",名字:".$cur->next->name."<br>";             $cur = $cur->next;         }     }     //普通插入     static public function addHero($head,$hero)     {         $cur = $head;         while($cur->next!=null)         {             $cur = $cur->next;         }         $cur->next=$hero;     }     //有序的链表的插入      static public function addHeroSorted($head,$hero)     {         $cur = $head;         $addNo = $hero->no;         while($cur->next->no <= $addNo)         {             $cur = $cur->next;         }         /*$tep = new Hero();         $tep = $cur->next;         $cur->next = $hero;         $hero->next =$tep;*/         $hero->next=$cur->next;         $cur->next=$hero;     }     static public function deleteHero($head,$no)     {         $cur = $head;         while($cur->next->no != $no && $cur->next!= null)         {             $cur = $cur->next;         }         if($cur->next->no != null)         {             $cur->next = $cur->next->next;             echo "删除成功<br>";         }         else         {             echo "没有找到<br>";         }     }     static public function updateHero($head,$hero)     {         $cur = $head;         while($cur->next->no != $hero->no && $cur->next!= null)         {             $cur = $cur->next;         }         if($cur->next->no != null)         {             $hero->next = $cur->next->next;             $cur->next = $hero;             echo "更改成功<br>";         }         else         {             echo "没有找到<br>";         }     } } //创建head头 $head = new Hero(); //第一个 $hero = new Hero(1,'111'); //连接 $head->next = $hero; //第二个 $hero2 = new Hero(3,'333'); //连接 Hero::addHero($head,$hero2); $hero3 = new Hero(2,'222'); Hero::addHeroSorted($head,$hero3); //显示 Hero::showlist($head); //删除 Hero::deleteHero($head,4); //显示 Hero::showlist($head); //更改 $hero4=new Hero(2,'xxx'); Hero::updateHero($head,$hero4); //显示 Hero::showlist($head);
有序的插入的话需要遍历一遍链表,链表的一些知识就不介绍了哈。这里主要分享一下代码。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部