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


Posted in PHP onNovember 10, 2017

本文实例讲述了PHP简单实现循环链表功能。分享给大家供大家参考,具体如下:

概述:

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

如下图所示:

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 "<br>--------------------------<br>";
$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

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP开发中常用的三个表单验证函数使用小结
Mar 03 PHP
PHP通过header实现文本文件下载的代码
Aug 08 PHP
openPNE常用方法分享
Nov 29 PHP
php提示undefined index的几种解决方法
May 21 PHP
解析zend studio中直接导入svn中的项目的方法步骤
Jun 21 PHP
php数据类型判断函数有哪些
Sep 23 PHP
使用PHP备份MYSQL数据的多种方法
Jan 15 PHP
php 过滤英文标点符号及过滤中文标点符号代码
Jun 12 PHP
PHP实现对二维数组某个键排序的方法
Sep 14 PHP
Thinkphp实现短信验证注册功能
Oct 18 PHP
详谈phpAdmin修改密码后拒绝访问的问题
Apr 03 PHP
PHP7多线程搭建教程
Apr 21 PHP
浅谈使用 Yii2 AssetBundle 中 $publishOptions 的正确姿势
Nov 08 #PHP
php基于环形链表解决约瑟夫环问题示例
Nov 07 #PHP
PHP基于关联数组20行代码搞定约瑟夫问题示例
Nov 07 #PHP
PHP基于回溯算法解决n皇后问题的方法示例
Nov 07 #PHP
php实现的三个常用加密解密功能函数示例
Nov 06 #PHP
php实现的中秋博饼游戏之掷骰子并输出结果功能详解
Nov 06 #PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
Nov 06 #PHP
You might like
php smarty函数扩展
2010/03/15 PHP
php制作unicode解码工具(unicode编码转换器)代码分享
2013/12/24 PHP
PHP后期静态绑定之self::限制实例分析
2018/12/21 PHP
PHP各种常见经典算法总结【排序、查找、翻转等】
2019/08/05 PHP
laravel框架模型和数据库基础操作实例详解
2020/01/25 PHP
CSS和Javascript简单复习资料
2010/06/29 Javascript
js实现点击注册按钮开始读秒倒计时的小例子
2013/05/11 Javascript
jquery的ajaxSubmit()异步上传图片并保存表单数据演示代码
2013/06/04 Javascript
公共js在页面底部加载的注意事项介绍
2013/07/18 Javascript
使用typeof方法判断undefined类型
2014/09/09 Javascript
jQuery实现购物车计算价格功能的方法
2015/03/25 Javascript
js实现跨域的4种实用方法原理分析
2015/10/29 Javascript
JS与jQuery遍历Table所有单元格内容的方法
2015/12/07 Javascript
JavaScript实现点击按钮字体放大、缩小
2016/02/29 Javascript
Angular2使用vscode断点调试ts文件的方法
2017/12/13 Javascript
JavaScript实现淘宝京东6位数字支付密码效果
2018/08/18 Javascript
vue 项目build错误异常的解决方法
2019/04/22 Javascript
vue 弹窗时 监听手机返回键关闭弹窗功能(页面不跳转)
2019/05/10 Javascript
js中的this的指向问题详解
2019/08/29 Javascript
Vuex实现简单购物车
2021/01/10 Vue.js
Python黑魔法@property装饰器的使用技巧解析
2016/06/16 Python
Python中matplotlib中文乱码解决办法
2017/05/12 Python
Python文本特征抽取与向量化算法学习
2017/12/22 Python
如何使用 Pylint 来规范 Python 代码风格(来自IBM)
2018/04/06 Python
python实现两个经纬度点之间的距离和方位角的方法
2019/07/05 Python
从训练好的tensorflow模型中打印训练变量实例
2020/01/20 Python
Python3开发实例之非关系型图数据库Neo4j安装方法及Python3连接操作Neo4j方法实例
2020/03/18 Python
html5 Canvas实现图片旋转的示例
2018/01/15 HTML / CSS
Oral-B荷兰:牙医最推荐的品牌
2020/02/25 全球购物
医学院校毕业生自荐信范文
2014/01/01 职场文书
总账会计岗位职责
2014/03/13 职场文书
市政管理求职信范文
2014/05/07 职场文书
党校毕业心得体会
2014/09/13 职场文书
2014年公务员退休工资改革方案
2014/10/01 职场文书
终止或解除劳动合同及劳动关系的证明书
2014/10/06 职场文书
SQL实现LeetCode(176.第二高薪水)
2021/08/04 MySQL