用php实现单向链表结构 -凯发k8官方网
凯发k8官方网
收集整理的这篇文章主要介绍了
用php实现单向链表结构
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
链表的结构是由一个一个节点组成的,所谓链,就是每个节点的头尾连在一起。而单向链表就是:每个节点包含了当前节点的值和下一个节点引用。双向链表就是每个节点包含了当前节点的值和上下两个节点的引用。相对于数组结构,链表的增删效率会更加高。
单向链表(示意图):
php代码实现
/*** 链表结构*/ class hero{public $no;public $name;public $next=null;public function __construct($no=null,$name=null){$this->no = $no;$this->name = $name;} }/*** 链表操作*/ class singlelink{/*** 添加节点*/public function addnode($head,$node){$insertnode = $head;$afternode = null; // 插入节点的后续节点while ($insertnode->next!=null){if ($node->no < $insertnode->next->no){$afternode = $insertnode->next; break;}elseif($node->no == $insertnode->next->no){throw new \exception('排名 '.$node->no.' 节点已存在!');}$insertnode = $insertnode->next;}if( $afternode ){ // 将后续节点拼接到当前插入节点的后面$node->next = $afternode;}$insertnode->next = $node;}/*** 删除节点*/public function delnode($head,$no){$currentnode = $head;$prevnode = $head;while ($currentnode->next!=null){$currentnode = $currentnode->next;if( $currentnode->no==$no ){$prevnode->next = $currentnode->next;break;}$prevnode = $currentnode;}}/*** 显示节点*/public function shownode($head){$currentnode = $head;while ($currentnode->next!=null){$currentnode = $currentnode->next;echo '第 '.$currentnode->no.' 名:'.$currentnode->name."";}} }//创建一个head头,该head 只是一个头,不放入数据 $head = new hero(); $herolist = new singlelink();$hero_01 = new hero(1,'宋江'); $hero_02 = new hero(2,'卢俊义'); $hero_03 = new hero(3,'公孙胜'); $hero_04 = new hero(4,'吴用'); $hero_05 = new hero(5,'关胜'); $hero_06 = new hero(6,'林冲');$herolist->addnode($head, $hero_01); $herolist->addnode($head, $hero_03); $herolist->addnode($head, $hero_02); $herolist->addnode($head, $hero_05); $herolist->addnode($head, $hero_04); $herolist->addnode($head, $hero_06); //$herolist->addnode($head, $hero_02);$herolist->shownode($head);echo "
"; $herolist->delnode($head,3); $herolist->delnode($head,5); $herolist->shownode($head);
参考:
韩顺平php程序员玩转算法公开课
https://www.cnblogs.com/starshot/p/6918569.html
https://blog.csdn.net/silent123go/article/details/52693735
总结
以上是凯发k8官方网为你收集整理的用php实现单向链表结构的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇:
- 下一篇: