• 技术文章 >后端开发 >php教程

    PHP简单实现循环链表功能示例

    *文*文2017-12-21 16:16:17原创665
    这篇文章主要介绍了PHP简单实现循环链表功能,简单描述了循环链表的概念、功能并结合实例形式分析了php定义及使用循环链表的相关操作技巧,需要的朋友可以参考下

    概述:

    循环链表是另一种形式的链式存贮结构。它的特点是表中最后一个结点的指针域指向头结点,整个链表形成一个环。

    如下图所示:

    00.jpg


    实现代码:

    <?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实现socket推送技术

    PHP怎么实现大小写转换?

    以上就是PHP简单实现循环链表功能示例的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php 循环链表 链表
    上一篇:PHP基于反射机制实现自动依赖注入的方法详解 下一篇:PHP开发中解决并发问题的几种实现方法分析
    VIP课程(WEB全栈开发)

    相关文章推荐

    • 【腾讯云】年中优惠,「专享618元」优惠券!• 用PHP来统计在线人数的四个方法详解• 装配mysql出错Can't connect to MySQL server on 'localhost' (10061 • [原创]替找房方便 ,将sohu焦点的 rss 改成全文的 • php中应用GD2库创建图形在浏览器中显示不出来 • 求伪静态的 PHP 程序解决办法!
    1/1

    PHP中文网