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合并两个数组的两种方式的异同
Sep 14 PHP
php 生成唯一id的几种解决方法
Mar 08 PHP
windows环境下php配置memcache的具体操作步骤
Jun 09 PHP
解析php中session的实现原理以及大网站应用应注意的问题
Jun 17 PHP
PHP生成自适应大小的缩略图类及使用方法分享
May 06 PHP
php如何获取文件的扩展名
Oct 28 PHP
WordPress中对访客评论功能的一些优化方法
Nov 24 PHP
4种PHP异步执行的常用方式
Dec 24 PHP
php注册登录系统简化版
Dec 28 PHP
php求数组全排列,元素所有组合的方法总结
Mar 14 PHP
PHP实现自动发送邮件功能代码(qq 邮箱)
Aug 18 PHP
PHP实现获取毫秒时间戳的方法【使用microtime()函数】
Mar 01 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 魔术函数使用说明
2010/02/21 PHP
PHP/ThinkPHP实现批量打包下载文件的方法示例
2017/07/31 PHP
PHP等比例压缩图片的实例代码
2018/07/26 PHP
mouse_on_title.js
2006/08/25 Javascript
js 键盘记录实现(兼容FireFox和IE)
2010/02/07 Javascript
js兼容的placeholder属性详解
2013/08/18 Javascript
整理Javascript函数学习笔记
2015/12/01 Javascript
基于JavaScript实现动态添加删除表格的行
2016/02/01 Javascript
jquery表单插件Autotab使用方法详解
2016/06/24 Javascript
全面了解JavaScript的数据类型转换
2016/07/01 Javascript
AngularJS验证信息框架的封装插件用法【w5cValidator扩展插件】
2016/11/03 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单
2016/11/25 Javascript
jQuery扩展_动力节点Java学院整理
2017/07/05 jQuery
Nodejs+angularjs结合multiparty实现多图片上传的示例代码
2017/09/29 NodeJs
解决layer 动态加载select 失效的问题
2019/09/18 Javascript
Vue 实现点击空白处隐藏某节点的三种方式(指令、普通、遮罩)
2019/10/23 Javascript
javascript 对象 与 prototype 原型用法实例分析
2019/11/11 Javascript
JSONP 的原理、理解 与 实例分析
2020/05/16 Javascript
基于python(urlparse)模板的使用方法总结
2017/10/13 Python
Python3 处理JSON的实例详解
2017/10/29 Python
Python利用multiprocessing实现最简单的分布式作业调度系统实例
2017/11/14 Python
Python读csv文件去掉一列后再写入新的文件实例
2017/12/28 Python
详解django自定义中间件处理
2018/11/21 Python
程序员的七夕用30行代码让Python化身表白神器
2019/08/07 Python
PyQt5连接MySQL及QMYSQL driver not loaded错误解决
2020/04/29 Python
Python基于当前时间批量创建文件
2020/05/07 Python
Django:使用filter的pk进行多值查询操作
2020/07/15 Python
香港草莓网土耳其网站:Strawberrynet TR
2017/03/02 全球购物
黄色火烈鸟:De Gele Flamingo
2019/03/18 全球购物
资深财务管理人员自我评价
2013/09/22 职场文书
证婚人搞笑证婚词
2014/01/10 职场文书
博士生导师推荐信
2014/07/08 职场文书
运输企业安全生产责任书
2014/07/28 职场文书
2014党员民主评议个人思想剖析发言
2014/09/19 职场文书
公司授权委托书
2014/10/17 职场文书
分析Python感知线程状态的解决方案之Event与信号量
2021/06/16 Python