<?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;
}
php实现循环链表
最新推荐文章于 2021-03-28 07:19:26 发布