这篇文章主要介绍了PHP简单实现循环链表功能,简单描述了循环链表的概念、功能并结合实例形式分析了php定义及使用循环链表的相关操作技巧,需要的朋友可以参考下

具体如下:

概述:

循环链表是另一种形式的链式存贮结构。它的特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环。

如下图所示:

实现代码:

class node{

public $data;

public $link;

public function __construct($data=null,$link=null){

$this->data=$data;

$this->link=$link;

}

}

class cycleLinkList{

public $head;

public function __construct($data,$link=null){

$this->head=new node($data,$link);

$this->head->link=$this->head;

}

public function insertLink($data){

$p=new node($data);

$q=$this->head->link;

$r=$this->head;

if($q==$r)

{

$q->link=$p;

$p->link=$q;

return;

}

while($q!=$this->head){

$r=$q;$q=$q->link;

}

$r->link=$p;

$p->link=$this->head;

}

}

$linklist=new cycleLinkList(1);

for($i=2;$i<11;$i++){

$linklist->insertLink($i);

}

$q=$linklist->head->link;

echo $linklist->head->data;

while($q!=$linklist->head){

echo $q->data;

$q=$q->link;

}

echo "
--------------------------
";

$p=$linklist->head;

$r=$p;

$n=10;

$i=2;

while($n)

{

while(0!=$i){

$r=$p;$p=$p->link;

$i--;

}

echo $p->data;

$r->link=$p->link;

$tmp=$p;

$p=$p->link;

unset($tmp);

$n--;

$i=2;

}

?>

运行结果:

12345678910

--------------------------

36927185104

相关推荐:

JavaScript数据结构之单链表和循环链表实例分享

PHP简单实现循环链表功能示例

JavaScript双向链表和双向循环链表的实现

php 循环链表,PHP实现循环链表功能相关推荐

  1. Python创建一个循环链表、双向循环链表

    循环链表与双向循环链表 循环链表 循环链表相较于单链表,将末尾结点的连接域指向了头结点,就类似于将播放器的顺序播放改成了列表循环 双向循环链表 双向链表相较于之前的链表多了上一节点连接域,在双向链表中 ...

  2. 单链表、循环链表、双向循环链表总结

    链表介绍 结点的概念: 一个结点包含两个信息,一个是数据域和一个是指针域: 数据域存储该结点的数据信息 指针域存储其直接后继的位置,其示意图如下: 链表的概念: 每个结点的存储单元是独立的,若干个结点 ...

  3. 建立循环链表c语言,循环链表C语言实现

    按照单链表的设计,稍加改动.和单向链表不一样的地方,头节点不指向NULL,而是指向自己head 循环链表的判满 1)判断next是不是头结点,2)判断size /* * CycleLinkList.h ...

  4. 构建循环链表c语言,循环链表一

    1.        循环链表概念 对于单链表以及双向链表,其就像一个小巷,无论怎么样最终都能从一端走到另一端,然而循环链表则像一个有传送门的小巷,因为循环链表当你以为你走到结尾的时候,其实你又回到了开 ...

  5. 数据结构与算法(2-2)线性表之链式存储(单链表、静态链表、循环链表、双向循环链表)

    目录 一.单链表 1.存储方式 2.插入 3.删除 总代码: 二.静态链表 1.存储方式 2.插入 3.删除 4.遍历 总代码: 三.循环链表 总代码: 四.双向循环链表 1.存储方式: 2.插入和删 ...

  6. 数据结构-单向循环链表、双向循环链表、仿真链表

    一.单向循环链表: 1.概念: 单向循环链表是单链表的另一种形式,其结构特点是链表中最后一个结点的指针不再是结束标记,而是指向整个链表的第一个结点,从而使单链表形成一个环. 和单链表相比,循环单链表的 ...

  7. step3 . day3 数据结构之线性表 单项循环链表和双向循环链表

    1. 使用单项循环链表解决约瑟夫问题: #include <stdio.h> #include <stdlib.h> typedef struct looplist{ int ...

  8. 《恋上数据结构第1季》单向循环链表、双向循环链表以及约瑟夫环问题

    循环链表(CircleList) 链表的接口设计 单向循环链表 单向循环链表完整源码 双向循环链表 双向循环链表完整源码 双向循环链表解决约瑟夫环问题 如何发挥循环链表的最大威力? 静态链表 数据结构 ...

  9. 【循环链表】数据结构——单向循环链表和双向循环链表操作笔记

    循环链表 一.单向循环链表 1.单向循环链表的节点 2.单向循环链表的结构 二.双向循环链表 1.双向循环链表示意图 2.双向循环链表节点设计 3.双向循环链表的一般性结构 4.双向循环链表头插法插入 ...

最新文章

  1. 全网最火的Nacos源码构建,你找不到第二个有我仔细的!!
  2. JavaScript中的作用域,闭包和上下文
  3. Revising Aggregations - Averages(集合函数-avg)
  4. x3650m5不自动进系统_自动起停系统不工作?可能有这几种情况
  5. java - 求a+aa+aaa+aa...a之和
  6. markdown入门2-插入图片
  7. js数组 reduce函数
  8. 微信推送早安教程(一)
  9. 深入理解哈希表(JAVA和Redis哈希表实现)
  10. 安全L2-1.4-安全术语介绍
  11. 【Excel提取数字】用5个简单公式从混合文本中提取数字
  12. 学习笔记三:ABtest
  13. C语言小程序实现输出国际象棋棋盘
  14. 亚马逊测评如何做?亚马逊测评的获得方法?
  15. 我是如何通过拉勾教育学习《java高薪训练营》课程突破困境的
  16. elasticsearch win10 安装
  17. 验证运放输入端之间电容作用
  18. shopnc 二次开发问题(一)
  19. 机智云OTA过程MCU端程序设计学习(一)
  20. find /home -fuck | backup -i -f /bed/makelove

热门文章

  1. AE开发使用内存图层
  2. 使用lvs搭建负载均衡集群
  3. 1、ASP.NET MVC入门到精通——新语法
  4. 初识Maven POM
  5. a+=b 等价于 a=a+b ?
  6. My1stServlet
  7. MyBatis学习总结(七)——Mybatis缓存
  8. 安装XCode7.1后,QT5.5出现的各种问题解决方案
  9. arm下如何烧写指定分区大小的内核和文件系统
  10. 思科虚拟化与视频技术打造协作新体验