为了账号安全,请及时绑定邮箱和手机立即绑定
首页 手记 [PHP] 数据结构-链表创建-插入-删除-查找的PHP实现

[PHP] 数据结构-链表创建-插入-删除-查找的PHP实现

2018.09.03 00:40 1653浏览

链表获取元素
1.声明结点p指向链表第一个结点,j初始化1开始
2.j<i,p指向下一结点,因为此时p是指向的p的next,因此不需要等于
3.如果到末尾了,p还为null,就是没有查找到


插入元素
1.插入元素和查找类似,找到位置后
2.生成新的结点s,  s->next=p->next p->next=s;

删除元素
1.删除元素,找到位置后
2.绕过一下,q=p->next p->next=q->next;

 

?

 <?phpclass Node{        public $data;        public $next;}//创建一个链表$linkList=new Node();$linkList->next=null;$temp=$linkList;for($i=1;$i<=10;$i++){        $node=new Node();        $node->data="aaa{$i}";        $node->next=null;        $temp->next=$node;        $temp=$node;}  //获取元素function getEle($linkList,$i,&$e){        $p=$linkList->next;        //寻找结点标准语句        $j=1;        while($p && $j<$i){                $p=$p->next;                ++$j;        }           if(!$p || $j>$i){                return false;        }           $e=$p->data;        return true;} //插入元素function listInsert(&$linkList,$i,$e){        $p=$linkList;        $j=1;        while($p && $j<$i){                $p=$p->next;                ++$j;        }           if(!$p || $j>$i){                return false;        }           $s=new Node();        $s->data=$e;        //插入元素标准语句        $s->next=$p->next;        $p->next=$s;        return true;}//删除元素function listDelete(&$linkList,$i,&$e){        $p=$linkList;        $j=1;        //注意这里的判断$p->next为真,主要是后面要把$p->next指向$p->next->next        while($p->next && $j<$i){                $p=$p->next;                ++$j;        }        if(!$p->next || $j>$i){                return false;        }        $q=$p->next;//这个才是当前元素        $e=$q->data;        $p->next=$q->next;        return true;}$e="";//获取元素getEle($linkList,5,$e);var_dump($e);//插入元素listInsert($linkList,5,"taoshihan");//删除元素listDelete($linkList,1,$e);var_dump($e);var_dump($linkList);

原文出处:https://www.cnblogs.com/taoshihan/p/9542316.html

点击查看更多内容
PHP
0人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
手记
粉丝
14
获赞与收藏
84

关注TA,一起探索更多经验知识

同主题相似文章浏览排行榜

风间影月说签约讲师

51篇手记,涉及Java、MySQL、Redis、Spring等方向

进入讨论

Tony Bai 说签约讲师

151篇手记,涉及Go、C、Java、Python等方向

进入讨论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消