[PHP] 数据结构-链表创建-插入-删除-查找的PHP实现
Posted 陶士涵的菜地
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[PHP] 数据结构-链表创建-插入-删除-查找的PHP实现相关的知识,希望对你有一定的参考价值。
链表获取元素
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);
以上是关于[PHP] 数据结构-链表创建-插入-删除-查找的PHP实现的主要内容,如果未能解决你的问题,请参考以下文章
用C语言编写链式存储结构下实现线性表的创建,插入,删除,按值查找