当前位置:首页 > 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. } 
  10. class cycleLinkList{ 
  11.   public $head; 
  12.   public function __construct($data,$link=null){ 
  13.     $this->head=new node($data,$link); 
  14.     $this->head->link=$this->head; 
  15.   } 
  16.   public function insertLink($data){ 
  17.     $p=new node($data); 
  18.     $q=$this->head->link; 
  19.     $r=$this->head; 
  20.     if($q==$r) 
  21.     { 
  22.       $q->link=$p; 
  23.       $p->link=$q; 
  24.       return; 
  25.     } 
  26.     while($q!=$this->head){ 
  27.       $r=$q;$q=$q->link; 
  28.     } 
  29.     $r->link=$p; 
  30.     $p->link=$this->head; 
  31.   } 
  32. } 
  33. $linklist=new cycleLinkList(1); 
  34. for($i=2;$i<11;$i++){ 
  35.    $linklist->insertLink($i); 
  36. } 
  37. $q=$linklist->head->link; 
  38. echo $linklist->head->data; 
  39. while($q!=$linklist->head){ 
  40.   echo $q->data; 
  41.   $q=$q->link; 
  42. } 
  43. echo "<br>--------------------------<br>"; 
  44. $p=$linklist->head; 
  45. $r=$p; 
  46. $n=10; 
  47. $i=2; 
  48. while($n) 
  49. { 
  50.     while(0!=$i){ 
  51.     $r=$p;$p=$p->link; 
  52.     $i--; 
  53.     } 
  54.     echo $p->data; 
  55.     $r->link=$p->link; 
  56.     $tmp=$p; 
  57.     $p=$p->link; 
  58.     unset($tmp); 
  59.     $n--; 
  60.     $i=2; 
  61. } 
  62. ?> 

运行结果:

12345678910

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

36927185104

Tags: PHP循环链表

分享到: