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 相关文章推荐
删除无限级目录与文件代码共享
Jul 12 PHP
一个可以找出源代码中所有中文的工具
Oct 25 PHP
php采集速度探究总结(原创)
Apr 18 PHP
php 结果集的分页实现代码
Mar 10 PHP
一个PHP并发访问实例代码
Sep 06 PHP
PHP实现的蚂蚁爬杆路径算法代码
Dec 03 PHP
php注册登录系统简化版
Dec 28 PHP
示例详解Laravel的注册重构
Aug 14 PHP
php使用FFmpeg接口获取视频的播放时长、码率、缩略图以及创建时间
Nov 07 PHP
laravel中命名路由的使用方法
Feb 24 PHP
关于php unset对json_encode的影响详解
Nov 14 PHP
PHP命名空间定义与用法实例分析
Aug 14 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 源代码压缩小工具
2009/12/22 PHP
PHP 导出数据到淘宝助手CSV的方法分享
2010/02/27 PHP
PHP zip扩展Linux下安装过程分享
2014/05/05 PHP
PHP简单实现无限级分类的方法
2016/05/13 PHP
Yii2中OAuth扩展及QQ互联登录实现方法
2016/05/16 PHP
PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
2018/05/11 PHP
Laravel程序架构设计思路之使用动作类
2018/06/07 PHP
php根据命令行参数生成配置文件详解
2019/03/15 PHP
js截取函数(indexOf,join等)
2010/09/01 Javascript
Javascript this 的一些学习总结
2012/08/02 Javascript
JS中引用百度地图并将百度地图的logo和信息去掉
2013/09/29 Javascript
jQuery控制TR显示隐藏的几种方法
2014/06/18 Javascript
jQuery选择器用法实例详解
2015/12/17 Javascript
详解AngularJS Filter(过滤器)用法
2015/12/28 Javascript
浅析js绑定事件的常用方法
2016/05/15 Javascript
浅谈JavaScript变量的自动转换和语句
2016/06/12 Javascript
带有定位当前位置的百度地图前端web api实例代码
2016/06/21 Javascript
早该知道的7个JavaScript技巧
2016/06/21 Javascript
js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示实例
2016/12/06 Javascript
使用nodejs下载风景壁纸
2017/02/05 NodeJs
如何使用VuePress搭建一个类型element ui文档
2019/02/14 Javascript
Vue函数式组件-你值得拥有
2019/05/09 Javascript
Python基于socket实现简单的即时通讯功能示例
2018/01/16 Python
django 取消csrf限制的实例
2020/03/13 Python
基于CentOS搭建Python Django环境过程解析
2020/08/24 Python
Python 在 VSCode 中使用 IPython Kernel 的方法详解
2020/09/05 Python
python3中确保枚举值代码分析
2020/12/02 Python
python 实现socket服务端并发的四种方式
2020/12/14 Python
兼职学生的自我评价
2013/11/24 职场文书
好邻里事迹材料
2014/01/16 职场文书
学习普通话的体会
2014/11/07 职场文书
2015年国税春训心得体会
2015/03/09 职场文书
小学重阳节活动总结
2015/03/24 职场文书
小王子读书笔记
2015/06/29 职场文书
Django cookie和session的应用场景及如何使用
2021/04/29 Python
如何用JavaScipt测网速
2021/05/09 Javascript