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框架Swoole定时器Timer特性分析
Aug 19 PHP
php返回字符串中所有单词的方法
Mar 09 PHP
php实现数组按指定KEY排序的方法
Mar 30 PHP
thinkphp3.2实现上传图片的控制器方法
Apr 28 PHP
ThinkPHP3.2.3实现分页的方法详解
Jun 03 PHP
php中简单的对称加密算法实现
Jan 05 PHP
PHP 配置后台登录以及模板引入
Jan 24 PHP
PHP实现图片批量打包下载功能
Mar 01 PHP
详解使用php调用微信接口上传永久素材
Apr 11 PHP
PHP环形链表实现方法示例
Sep 15 PHP
PHP实现的敏感词过滤方法示例
Mar 06 PHP
laravel 执行迁移回滚示例
Oct 23 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实现水仙花数的4个示例分享
2014/04/08 PHP
PHP中实现crontab代码分享
2015/03/26 PHP
yii2中LinkPager增加总页数和总记录数的实例
2017/08/28 PHP
php-fpm添加service服务的例子
2018/04/27 PHP
Jquery Ajax 学习实例2 向页面发出请求 返回JSon格式数据
2010/03/15 Javascript
可以将word转成html的js代码
2010/04/11 Javascript
基于JavaScript自定义构造函数的详解说明
2013/04/24 Javascript
js 一个关于图片onload加载的事
2013/11/10 Javascript
jquery下拉select控件操作方法分享(jquery操作select)
2014/03/25 Javascript
jQuery中:last选择器用法实例
2014/12/30 Javascript
JS交换变量的方法
2015/01/21 Javascript
JavaScript生成随机数的4种自定义函数分享
2015/02/28 Javascript
Javascript中For In语句用法实例
2015/05/14 Javascript
详解js图片轮播效果实现原理
2015/12/17 Javascript
jQuery获取radio选中项的值实例
2016/06/18 Javascript
Javascript 跨域知识详细介绍
2016/10/30 Javascript
jQuery实现select下拉框获取当前选中文本、值、索引
2017/05/08 jQuery
微信小程序url与token设置详解
2017/09/26 Javascript
JavaScript如何获取到导航条中HTTP信息
2017/10/10 Javascript
详解vue-flickity的fullScreen功能实现
2020/04/07 Javascript
Vue自动构建发布脚本的方法示例
2020/07/24 Javascript
Python 错误和异常小结
2013/10/09 Python
详尽讲述用Python的Django框架测试驱动开发的教程
2015/04/22 Python
用 Python 爬了爬自己的微信朋友(实例讲解)
2017/08/25 Python
详解Tensorflow数据读取有三种方式(next_batch)
2018/02/01 Python
Python中一行和多行import模块问题
2018/04/01 Python
python中单下划线_的常见用法总结
2018/07/10 Python
TensorFlow实现模型评估
2018/09/07 Python
python如何实现视频转代码视频
2019/06/17 Python
Django admin 实现search_fields精确查询实例
2020/03/30 Python
python3通过udp实现组播数据的发送和接收操作
2020/05/05 Python
SVG实现多彩圆环倒计时效果的示例代码
2017/11/21 HTML / CSS
以实惠的价格提供高品质的时尚:Newchic
2018/01/18 全球购物
餐饮业创业计划书范文
2014/01/06 职场文书
幼儿园端午节活动总结
2015/05/05 职场文书
html form表单基础入门案例讲解
2021/07/21 HTML / CSS