链表获取元素
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;
<?php class 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
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦