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完全过滤HTML,JS,CSS等标签
Jan 16 PHP
PHP 魔术函数使用说明
May 14 PHP
深入理解PHP几个算法:PHP冒泡、PHP二分法、PHP求素数、PHP乘法表
Jun 06 PHP
php无序树实现方法
Jul 28 PHP
PHP实现的memcache环形队列类实例
Jul 28 PHP
浅析Laravel5中队列的配置及使用
Aug 04 PHP
PHP会员找回密码功能的简单实现
Sep 05 PHP
php实现遍历文件夹的方法汇总
Mar 02 PHP
php获取数据库结果集方法(推荐)
Jun 01 PHP
基于php编程规范(详解)
Aug 17 PHP
PHP实现网站访问量计数器
Oct 27 PHP
php实现的简单多进程服务器类完整示例
Feb 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读取flv文件的播放时间长度
2009/09/03 PHP
php数组指针操作详解
2017/02/14 PHP
php实现的二叉树遍历算法示例
2017/06/15 PHP
通过PHP实现获取访问用户IP
2020/05/09 PHP
安装PHP扩展时解压官方 tgz 文件后没有configure文件无法进行配置编译的问题
2020/08/26 PHP
JavaScript中null与undefined分析
2009/07/25 Javascript
jquery中获得$.ajax()事件返回的值并添加事件的方法
2010/04/15 Javascript
一个基于jquery的图片切换效果
2010/07/06 Javascript
JS实现鼠标点击展开或隐藏表格行的方法
2015/03/03 Javascript
关于js里的this关键字的理解
2015/08/17 Javascript
详解JavaScript函数对象
2015/11/15 Javascript
js表单验证实例讲解
2016/03/31 Javascript
详解node.js中的npm和webpack配置方法
2018/01/21 Javascript
Vue的watch和computed方法的使用及区别介绍
2018/09/06 Javascript
vue中使用cookies和crypto-js实现记住密码和加密的方法
2018/10/18 Javascript
深入学习Vue nextTick的用法及原理
2019/10/08 Javascript
ES6 proxy和reflect的使用方法与应用实例分析
2020/02/15 Javascript
[01:04:05]VG vs Newbee 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
[01:42:49]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第一场 2月26日
2021/03/11 DOTA
简单介绍Python中用于求最小值的min()方法
2015/05/15 Python
Python使用poplib模块和smtplib模块收发电子邮件的教程
2016/07/02 Python
DataFrame中的object转换成float的方法
2018/04/10 Python
使用Rasterio读取栅格数据的实例讲解
2019/11/26 Python
django项目中使用云片网发送短信验证码的实现
2021/01/19 Python
用60行代码实现Python自动抢微信红包
2021/02/04 Python
Carrs Silver官网:英国著名的银器品牌
2020/08/29 全球购物
商场消防演习方案
2014/02/12 职场文书
汉语言文学毕业求职信
2014/07/17 职场文书
争先创优公开承诺书
2014/08/30 职场文书
党员群众路线剖析材料
2014/10/08 职场文书
长城导游词
2015/01/30 职场文书
英语教师个人工作总结
2015/02/09 职场文书
酒店财务总监岗位职责
2015/04/03 职场文书
2015国庆节感想
2015/08/04 职场文书
如何计划开一家便利店?
2019/07/31 职场文书
在windows server 2012 r2中安装mysql的详细步骤
2022/07/23 Servers