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实现用户在线时间统计详解
Oct 08 PHP
php错误、异常处理机制(补充)
May 07 PHP
php实现在线生成条形码示例分享(条形码生成器)
Dec 30 PHP
destoon二次开发模板及调用语法汇总
Jun 21 PHP
PHP aes (ecb)解密后乱码问题
Jun 22 PHP
PHP register_shutdown_function()函数的使用示例
Jun 23 PHP
php版微信公众账号第三方管理工具开发简明教程
Sep 23 PHP
PHP实现统计在线人数功能示例
Oct 15 PHP
解析PHP之提取多维数组指定列的方法
Jan 03 PHP
关于Laravel Route重定向的一个注意点
Jan 16 PHP
yii2.0整合阿里云oss的示例代码
Sep 19 PHP
PHP守护进程化在C和PHP环境下的实现
Nov 21 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实现使用优酷土豆视频地址获取swf播放器分享地址
2014/06/05 PHP
PHP类的封装与继承详解
2015/09/29 PHP
thinkphp5修改view到根目录实例方法
2019/07/02 PHP
nodejs 后缀名判断限制代码
2011/03/31 NodeJs
JavaScript每天必学之事件
2016/09/18 Javascript
常用js,css文件统一加载方法(推荐) 并在加载之后调用回调函数
2016/09/23 Javascript
Bootstrap Table从服务器加载数据进行显示的实现方法
2016/09/29 Javascript
浅谈Angular中ngModel的$render
2016/10/24 Javascript
Angular.js中下拉框实现渲染html的方法
2017/06/18 Javascript
解决nodejs的npm命令无反应的问题
2018/05/17 NodeJs
Node.js log4js日志管理详解
2018/07/31 Javascript
jquery实现联想词搜索框和搜索结果分页的示例
2018/10/10 jQuery
Vue2.0实现组件之间数据交互和通信操作示例
2019/05/16 Javascript
在layui中使用form表单监听ajax异步验证注册的实例
2019/09/03 Javascript
js中addEventListener()与removeEventListener()用法案例分析
2020/03/02 Javascript
iview实现图片上传功能
2020/06/29 Javascript
[13:56]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第一场
2018/04/06 DOTA
[01:32]寻找你心中的那团火 DOTA2 TI9火焰传递活动今日开启
2019/05/16 DOTA
python操作数据库之sqlite3打开数据库、删除、修改示例
2014/03/13 Python
Python网络爬虫项目:内容提取器的定义
2016/10/25 Python
关于Python中异常(Exception)的汇总
2017/01/18 Python
django中的setting最佳配置小结
2017/11/21 Python
python对excel文档去重及求和的实例
2018/04/18 Python
Python提取频域特征知识点浅析
2019/03/04 Python
python带参数打包exe及调用方式
2019/12/21 Python
python系统指定文件的查找只输出目录下所有文件及文件夹
2020/01/19 Python
TensorFlow 多元函数的极值实例
2020/02/10 Python
Python可以用来做什么
2020/11/23 Python
利用CSS3实现炫酷的飞机起飞动画
2016/09/17 HTML / CSS
Pat McGrath Labs官网:世界上最有影响力的化妆师推出的彩妆品牌
2018/01/07 全球购物
汉森批发:Hansen Wholesale
2018/05/24 全球购物
运动会方阵口号
2014/06/07 职场文书
技术入股合作协议书
2014/10/07 职场文书
公司开会通知
2015/04/20 职场文书
体育教师教学随笔
2015/08/15 职场文书
JavaScript实现简单的音乐播放器
2022/08/14 Javascript