·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> php网站开发 >> PHP实现链表

PHP实现链表

作者:佚名      php网站开发编辑:admin      更新时间:2022-07-23
php实现链表

看了很久数据结构但是没有怎么用过,在网上看到了关于PHP的数据结构,学习了一下,与大家一起分享一下。

简短不割

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);

我是天王盖地虎的分割线

有序的插入的话需要遍历一遍链表,链表的一些知识就不介绍了哈。这里主要分享一下代码。

转载请注明出处:http://www.cnblogs.com/yydcdut