当前位置:首页 > PHP教程 > php应用 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-08-19 10:04:49 浏览: 评论:0 

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

本文实例讲述了PHP简单实现循环链表功能,分享给大家供大家参考,具体如下:

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

实现代码:

  1. <?php 
  2. class node{ 
  3.   public $data
  4.   public $link
  5.   public function __construct($data=null,$link=null){ 
  6.     $this->data=$data
  7.     $this->link=$link
  8.   } 
  9. class cycleLinkList{ 
  10.   public $head
  11.   public function __construct($data,$link=null){ 
  12.     $this->head=new node($data,$link); 
  13.     $this->head->link=$this->head; 
  14.   } 
  15.   public function insertLink($data){ 
  16.     $p=new node($data); 
  17.     $q=$this->head->link; 
  18.     $r=$this->head; 
  19.     if($q==$r
  20.     { 
  21.       $q->link=$p
  22.       $p->link=$q
  23.       return
  24.     } 
  25.     while($q!=$this->head){ 
  26.       $r=$q;$q=$q->link; 
  27.     } 
  28.     $r->link=$p
  29.     $p->link=$this->head; 
  30.   } 
  31. $linklist=new cycleLinkList(1); 
  32. for($i=2;$i<11;$i++){ 
  33.    $linklist->insertLink($i); 
  34. $q=$linklist->head->link; 
  35. echo $linklist->head->data; 
  36. while($q!=$linklist->head){ 
  37.   echo $q->data; 
  38.   $q=$q->link; 
  39. echo "<br>--------------------------<br>"
  40. $p=$linklist->head; 
  41. $r=$p
  42. $n=10; 
  43. $i=2; 
  44. while($n
  45.     while(0!=$i){ 
  46.     $r=$p;$p=$p->link; 
  47.     $i--; 
  48.     } 
  49.     echo $p->data; 
  50.     $r->link=$p->link; 
  51.     $tmp=$p
  52.     $p=$p->link; 
  53.     unset($tmp); 
  54.     $n--; 
  55.     $i=2; 
  56. ?> 

运行结果:

12345678910

--------------------------

36927185104

Tags: PHP循环链表

分享到: