博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP实现链表
阅读量:6490 次
发布时间:2019-06-24

本文共 2265 字,大约阅读时间需要 7 分钟。

看了很久数据结构但是没有怎么用过,在网上看到了关于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."
"; $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 "删除成功
"; } else { echo "没有找到
"; } } 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 "更改成功
"; } else { echo "没有找到
"; } }}//创建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);

我是天王盖地虎的分割线                                                                

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

 

 

转载请注明出处:

你可能感兴趣的文章
SID颁发全球显示行业个人奖项
查看>>
百度地图拖动标注后获取坐标
查看>>
RAC重要概念和原理
查看>>
高并发网络编程之epoll详解
查看>>
ORACLE SQL调优之记录一次trim函数引发的大表全表扫描
查看>>
JS编程建议——20:不要使用new
查看>>
Oracle hint之DRIVING_SITE
查看>>
深入理解计算机系统结构——链接
查看>>
阿里云盾提醒网站被WebShell木马后门分析与对策
查看>>
Java开发者福利——Java编码规范Eclipse/IDEA插件
查看>>
not accessible due to restriction on required library
查看>>
Python计算&绘图——曲线拟合问题(转)
查看>>
数学计算不精确的芯片能帮助解决难题
查看>>
《树莓派Python编程入门与实战》——1.3 哪些树莓派外设是必须的
查看>>
《编译与反编译技术实战 》一3.2 词法分析器的手工实现
查看>>
《计算机存储与外设》----1.5 虚拟存储器和存储器管理
查看>>
《 Python树莓派编程》——3.4 利用Python进行编程
查看>>
从损坏的 Linux EFI 安装中恢复
查看>>
Git Rebase教程: 用Git Rebase让时光倒流
查看>>
柏林纪行(上):整体感受
查看>>