全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

PHP环形链表实现方法示例

本文实例讲述了PHP环形链表实现方法。分享给大家供大家参考,具体如下:

环形链表是一种链式存储结构,类似于单链表。区别是环形链表的尾节点指向头节点。

从而形成一个环,

环形链表是一种非常灵活的存储结构,可解决许多实际问题,魔术师发牌问题和约瑟夫问题

都能利用环形链表来解决,下面是一个完整的环形链表实例,使用php来实现的(参照韩顺平老师的php算法教程)

/** 
 *  环形链表的实现
 *  
 */
class child
{
  public $no;//序号
  public $next;//指向下个节点的指针
  public function __construct($no=''){
    $this ->no = $no;
  }
}
/**
 * 创建一个环形链表
 * @param $first null  链表的头节点
 * @param $num  integer 需要添加节点的数量
 */
function create(&$first,$num)
{
  $cur = null;
  for ($i=0;$i<$num;$i++)
  {
    $child = new child($i+1);
    if ($i==0)
    {  
      $first = $child;
      $first->next = $first;//将链表的尾节点指向头节点 形成环形链表
      $cur = $first;//链表的头节点不能动 需要交给一个临时变量
    } else {
      $cur->next = $child;
      $cur->next->next = $first;//将链表的尾节点指向头节点 形成环形链表
      $cur = $cur->next;
    }
  }
}
/**
 * 遍历环形链表
 * @param $first object 环形链表的头
 * 
 */
function show ($first)
{
  //头节点不能动,交个一个临时变量
  $cur = $first;
  while ($cur->next!=$first)//当$cur->next==$first说明到了链表的最后一个节点
  {
    echo $cur->no.'</br>';
    $cur = $cur->next;
  }
  //当退出循环的时候$cur->next=$first 刚好会忽略当前节点本身的遍历 所以退出的时候还要输出一下 否则会少遍历一个节点
  echo $cur->no;
}

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数据结构与算法教程》、《PHP基本语法入门教程》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。


# PHP  # 环形链表  # php数据结构之顺序链表与链式线性表示例  # php线性表顺序存储实现代码(增删查改)  # php线性表的入栈与出栈实例分析  # PHP+MySQL统计该库中每个表的记录数并按递减顺序排列的方法  # php实现单链表的实例代码  # PHP小教程之实现链表  # 浅谈PHP链表数据结构(单链表)  # PHP小教程之实现双向链表  # PHP实现单链表翻转操作示例  # PHP链表操作简单示例  # php实现的顺序线性表示例  # 链表  # 遍历  # 是一种  # 链式  # 约瑟夫  # 程序设计  # 是一个  # 相关内容  # 都能  # 感兴趣  # 数据结构  # 给大家  # 更多关于  # 来实现  # 类似于  # 下个  # 则会  # 所述  # 创建一个  # 实际问题 


相关文章: 网站规划与制作是什么,电子商务网站系统规划的内容及步骤是什么?  网站好制作吗知乎,网站开发好学吗?有什么技巧?  电商平台网站制作流程,电商网站如何制作?  详解jQuery停止动画——stop()方法的使用  如何在服务器上配置二级域名建站?  历史网站制作软件,华为如何找回被删除的网站?  如何访问已购建站主机并解决登录问题?  零服务器AI建站解决方案:快速部署与云端平台低成本实践  网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?  如何快速配置高效服务器建站软件?  建站之星CMS建站配置指南:模板选择与SEO优化技巧  h5在线制作网站电脑版下载,h5网页制作软件?  网站企业制作流程,用什么语言做企业网站比较好?  c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗  广东专业制作网站有哪些,广东省能源集团有限公司官网?  微网站制作教程,我微信里的网站怎么才能复制到浏览器里?  建站之星logo尺寸如何设置最合适?  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  如何正确下载安装西数主机建站助手?  建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析  如何在阿里云域名上完成建站全流程?  如何在阿里云虚拟主机上快速搭建个人网站?  C#怎么创建控制台应用 C# Console App项目创建方法  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  网站插件制作软件免费下载,网页视频怎么下到本地插件?  c# 在高并发下使用反射发射(Reflection.Emit)的性能  建站主机CVM配置优化、SEO策略与性能提升指南  建站之星官网登录失败?如何快速解决?  如何通过建站之星自助学习解决操作问题?  宝塔建站后网页无法访问如何解决?  如何通过远程VPS快速搭建个人网站?  制作国外网站的软件,国外有哪些比较优质的网站推荐?  如何快速搭建安全的FTP站点?  如何在Windows服务器上快速搭建网站?  详解jQuery中基本的动画方法  高防服务器如何保障网站安全无虞?  如何通过VPS建站实现广告与增值服务盈利?  ,在苏州找工作,上哪个网站比较好?  小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?  如何在阿里云ECS服务器部署织梦CMS网站?  网站制作需要会哪些技术,建立一个网站要花费多少?  北京制作网站的公司排名,北京三快科技有限公司是做什么?北京三快科技?  上海网站制作网站建设公司,建筑电工证网上查询系统入口?  如何用y主机助手快速搭建网站?  建站OpenVZ教程与优化策略:配置指南与性能提升  C#如何序列化对象为XML XmlSerializer用法  如何选择高性价比服务器搭建个人网站?  建站之星北京办公室:智能建站系统与小程序生成方案解析  教程网站设计制作软件,怎么创建自己的一个网站?  如何配置WinSCP新建站点的密钥验证步骤? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。