PHP簡單實現(xiàn)循環(huán)鏈表功能示例
本文實例講述了PHP簡單實現(xiàn)循環(huán)鏈表功能。分享給大家供大家參考,具體如下:
概述:
循環(huán)鏈表是另一種形式的鏈?zhǔn)酱尜A結(jié)構(gòu)。它的特點(diǎn)是表中最后一個結(jié)點(diǎn)的指針域指向頭結(jié)點(diǎn),整個鏈表形成一個環(huán)。
如下圖所示:

實現(xiàn)代碼:
<?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;
}
?>
運(yùn)行結(jié)果:
12345678910 -------------------------- 36927185104
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計算法總結(jié)》、《php字符串(string)用法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP常用遍歷算法與技巧總結(jié)》及《PHP數(shù)學(xué)運(yùn)算技巧總結(jié)》
希望本文所述對大家PHP程序設(shè)計有所幫助。
相關(guān)文章
PHP簡單獲取隨機(jī)數(shù)的常用方法小結(jié)
這篇文章主要介紹了PHP簡單獲取隨機(jī)數(shù)的常用方法,結(jié)合實例形式分析了php實現(xiàn)指定范圍隨機(jī)數(shù)與指定字符序列隨機(jī)數(shù)的簡單實現(xiàn)技巧,需要的朋友可以參考下2017-06-06
學(xué)習(xí)php設(shè)計模式 php實現(xiàn)橋梁模式(bridge)
這篇文章主要介紹了php設(shè)計模式中的橋梁模式,使用php實現(xiàn)橋梁模式,感興趣的小伙伴們可以參考一下2015-12-12

