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音乐采集(部分代码)
Feb 14 PHP
让PHP支持页面回退的两种方法
Jan 10 PHP
域名和cookie问题(域名后缀)
Oct 10 PHP
又十个超级有用的PHP代码片段
Sep 24 PHP
PHP判断FORM表单或URL参数来的数据是否为整数的方法
Mar 25 PHP
PHP微信开发之文本自动回复
Jun 23 PHP
PHP 信号管理知识整理汇总
Feb 19 PHP
PHP 进度条函数的简单实例
Sep 19 PHP
PHP基于关联数组20行代码搞定约瑟夫问题示例
Nov 07 PHP
PHP+Redis 消息队列 实现高并发下注册人数统计的实例
Jan 29 PHP
PHP调用微博接口实现微博登录的方法示例
Sep 22 PHP
Laravel 自动转换长整型雪花 ID 为字符串的实现
Oct 27 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
Session保存到数据库的php类分享
2011/10/24 PHP
PHP实现的网站目录扫描索引工具
2016/09/08 PHP
学习YUI.Ext第五日--做拖放Darg&amp;Drop
2007/03/10 Javascript
js获得参数的getParameter使用示例
2014/02/26 Javascript
js获取UserControl内容为拼html时提供方便
2014/11/02 Javascript
jquery中trigger()无法触发hover事件的解决方法
2015/05/07 Javascript
javascript随机显示背景图片的方法
2015/06/18 Javascript
JS实现网页顶部向下滑出的全国城市切换导航效果
2015/08/22 Javascript
Jquery1.9.1源码分析系列(六)延时对象应用之jQuery.ready
2015/11/24 Javascript
JS提交form表单实例分析
2015/12/10 Javascript
详解Webwork中Action 调用的方法
2016/02/02 Javascript
Node.JS更改Windows注册表Regedit的方法小结
2017/08/18 Javascript
基于javascript 显式转换与隐式转换(详解)
2017/12/15 Javascript
vue获取当前点击的元素并传值的实例
2018/03/09 Javascript
详解react-redux插件入门
2018/04/19 Javascript
nodejs中方法和模块用法示例
2018/12/24 NodeJs
vue实现element表格里表头信息提示功能(推荐)
2019/11/20 Javascript
Javascript节流函数throttle和防抖函数debounce
2020/12/03 Javascript
[15:07]lgd_OG_m2_BP
2019/09/10 DOTA
python实现保存网页到本地示例
2014/03/16 Python
Python中统计函数运行耗时的方法
2015/05/05 Python
python网络编程之文件下载实例分析
2015/05/20 Python
浅谈python字符串方法的简单使用
2016/07/18 Python
Python网络爬虫神器PyQuery的基本使用教程
2018/02/03 Python
Python实现定制自动化业务流量报表周报功能【XlsxWriter模块】
2019/03/11 Python
django form和field具体方法和属性说明
2020/07/09 Python
python进行二次方程式计算的实例讲解
2020/12/06 Python
Html5监听手机摇一摇事件的实现
2019/11/07 HTML / CSS
美国一家著名的手表在线折扣网站:Discount Watch Store
2020/02/24 全球购物
Herschel Supply Co.美国:背包、手提袋及配件
2020/11/24 全球购物
建筑工程技术应届生求职信
2013/11/17 职场文书
教师实习自我鉴定
2013/12/13 职场文书
政治思想表现评语
2014/05/04 职场文书
幼儿园大班教师个人工作总结
2015/02/05 职场文书
2015年度公共机构节能工作总结
2015/05/26 职场文书
物业公司管理制度
2015/08/05 职场文书