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与javascript对多项选择的处理
Oct 09 PHP
用header 发送cookie的php代码
Mar 16 PHP
php HtmlReplace输入过滤安全函数
Jul 03 PHP
PHP数组交集的优化代码分析
Mar 06 PHP
PHP curl 并发最佳实践代码分享
Sep 05 PHP
PHP stripos()函数及注意事项的分析
Jun 08 PHP
php实现的css文件背景图片下载器代码
Nov 11 PHP
PHP实现自动对图片进行滚动显示的方法
Mar 12 PHP
php倒计时出现-0情况的解决方法
Jul 28 PHP
浅析php如何实现爬取数据原理
Sep 27 PHP
php json转换相关知识(小结)
Dec 21 PHP
Laravel Validator自定义错误返回提示消息并在前端展示
May 09 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二维/三维数组转字符串
2013/09/13 PHP
php阻止页面后退的方法分享
2014/02/17 PHP
浅析php单例模式
2014/11/25 PHP
php将文件夹打包成zip文件的简单实现方法
2016/10/04 PHP
javascript 自定义事件初探
2009/08/21 Javascript
深入理解JavaScript系列(9) 根本没有“JSON对象”这回事!
2012/01/15 Javascript
jQuery之选项卡的简单实现
2014/02/28 Javascript
JavaScript日期时间与时间戳的转换函数分享
2015/01/31 Javascript
angularJS 入门基础
2015/02/09 Javascript
jQuery实现鼠标经过提示信息的地图热点效果
2015/04/26 Javascript
微信浏览器内置JavaScript对象WeixinJSBridge使用实例
2015/05/25 Javascript
设计模式中的组合模式在JavaScript程序构建中的使用
2016/05/18 Javascript
JS遍历数组和对象的区别及递归遍历对象、数组、属性的方法详解
2016/06/14 Javascript
使用JSON作为函数的参数的优缺点
2016/10/27 Javascript
Vue中父组件向子组件通信的方法
2017/07/11 Javascript
JavaScript显式数据类型转换详解
2019/03/18 Javascript
微信小程序 接入腾讯地图的两种写法
2021/01/12 Javascript
[42:32]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第二场 11.27
2020/12/01 DOTA
[54:58]完美世界DOTA2联赛PWL S2 LBZS vs Rebirth 第一场 11.25
2020/11/25 DOTA
详解python eval函数的妙用
2017/11/16 Python
Python利用itchat对微信中好友数据实现简单分析的方法
2017/11/21 Python
Python学习笔记之pandas索引列、过滤、分组、求和功能示例
2019/06/03 Python
pandas将多个dataframe以多个sheet的形式保存到一个excel文件中
2019/10/10 Python
pygame实现飞机大战
2020/03/11 Python
python 中的命名空间,你真的了解吗?
2020/08/19 Python
在IE6系列等老式浏览器中使用HTML5的新标签实现方案
2012/12/25 HTML / CSS
amaze ui 的使用详细教程
2020/08/19 HTML / CSS
美国Jeep配件购物网站:Morris 4×4 Center
2019/05/01 全球购物
学术会议主持词
2014/03/17 职场文书
yy司仪主持词
2014/03/22 职场文书
2015政治思想表现评语
2015/03/25 职场文书
小学秋季运动会通讯稿
2015/11/25 职场文书
2019年干货:自我鉴定
2019/03/25 职场文书
描述鲁迅的名言整理,一生受用
2019/08/08 职场文书
Python竟然能剪辑视频
2021/05/25 Python
Springboot如何同时装配两个相同类型数据库
2021/11/17 Java/Android