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 相关文章推荐
桌面中心(四)数据显示
Oct 09 PHP
解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
Mar 13 PHP
PHP操作数组相关函数
Feb 03 PHP
简单的方法让你的后台登录更加安全(php中加session验证)
Aug 22 PHP
destoon官方标签大全
Jun 20 PHP
PHP的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别
Sep 29 PHP
新浪微博OAuth认证和储存的主要过程详解
Mar 27 PHP
PHP面向对象之后期静态绑定功能介绍
May 18 PHP
yii2 页面底部加载css和js的技巧
Apr 21 PHP
深入浅析PHP无限极分类的案例教程
May 09 PHP
如何使用php等比例缩放图片
Oct 12 PHP
php实现与python进行socket通信的方法示例
Aug 30 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
Terran剧情介绍
2020/03/14 星际争霸
php二维数组排序方法(array_multisort usort)
2013/12/25 PHP
PHP中的常见魔术方法功能作用及用法实例
2015/07/01 PHP
php版微信开发Token验证失败或请求URL超时问题的解决方法
2016/09/23 PHP
PHP使用栈解决约瑟夫环问题算法示例
2017/08/27 PHP
JavaScript Tips 使用DocumentFragment加快DOM渲染速度
2010/06/28 Javascript
Web开发者必备的12款超赞jQuery插件
2010/12/03 Javascript
Jquery.LazyLoad.js修正版下载,实现图片延迟加载插件
2011/03/12 Javascript
jQuery图片轮播的具体实现
2013/09/11 Javascript
Javascript表单验证要注意的事项
2014/09/29 Javascript
JavaScript将当前时间转换成UTC标准时间的方法
2015/04/06 Javascript
基于jQuery实现的仿百度首页滑动选项卡效果代码
2015/11/16 Javascript
javascript每日必学之循环
2016/02/19 Javascript
JS使用cookie实现只出现一次的广告代码效果
2017/04/22 Javascript
详解angular应用容器化部署
2018/08/14 Javascript
Vue.js 中的 v-cloak 指令及使用详解
2018/11/19 Javascript
vue中监听返回键问题
2019/08/28 Javascript
JS面向对象编程实现的Tab选项卡案例详解
2020/03/03 Javascript
详解js中的原型,原型对象,原型链
2020/07/16 Javascript
微信小程序实现多行文字滚动
2020/11/18 Javascript
跟老齐学Python之从if开始语句的征程
2014/09/14 Python
详解Python if-elif-else知识点
2018/06/11 Python
pygame实现俄罗斯方块游戏
2018/06/26 Python
对numpy中数组转置的求解以及向量内积计算方法
2018/10/31 Python
几行Python代码爬取3000+上市公司的信息
2019/01/24 Python
python可视化篇之流式数据监控的实现
2019/08/07 Python
PyTorch中Tensor的维度变换实现
2019/08/18 Python
python 函数的缺省参数使用注意事项分析
2019/09/17 Python
Expected conditions模块使用方法汇总代码解析
2020/08/13 Python
python实现测试工具(一)——命令行发送get请求
2020/10/19 Python
学前教育毕业生自荐信
2013/10/29 职场文书
车间机修工岗位职责
2014/02/28 职场文书
房屋买卖委托书格式范本格式
2014/10/13 职场文书
2014年医药代表工作总结
2014/11/22 职场文书
应急管理工作总结2015
2015/05/04 职场文书
html+css实现环绕倒影加载特效
2021/07/07 HTML / CSS