看了很久數(shù)據(jù)結構但是沒有怎么用過,在網上看到了關于php的數(shù)據(jù)結構,學習了一下,與大家一起分享一下。
代碼如下:
class hero
{
public $no;//排名
public $name;//名字
public $next=null;//$next是一個引用,指向另外一個hero的對象實例
public function __construct($no='',$name='')
{
$this->no=$no;
$this->name=$name;
}
static public function showlist($head)
{
$cur = $head;
while($cur->next!=null)
{
echo 排名:.$cur->next->no.,名字:.$cur->next->name.<br>;
$cur = $cur->next;
}
}
//普通插入
static public function addhero($head,$hero)
{
$cur = $head;
while($cur->next!=null)
{
$cur = $cur->next;
}
$cur->next=$hero;
}
//有序的鏈表的插入
static public function addherosorted($head,$hero)
{
$cur = $head;
$addno = $hero->no;
while($cur->next->no <= $addno)
{
$cur = $cur->next;
}
/*$tep = new hero();
$tep = $cur->next;
$cur->next = $hero;
$hero->next =$tep;*/
$hero->next=$cur->next;
$cur->next=$hero;
}
static public function deletehero($head,$no)
{
$cur = $head;
while($cur->next->no != $no && $cur->next!= null)
{
$cur = $cur->next;
}
if($cur->next->no != null)
{
$cur->next = $cur->next->next;
echo 刪除成功<br>;
}
else
{
echo 沒有找到<br>;
}
}
static public function updatehero($head,$hero)
{
$cur = $head;
while($cur->next->no != $hero->no && $cur->next!= null)
{
$cur = $cur->next;
}
if($cur->next->no != null)
{
$hero->next = $cur->next->next;
$cur->next = $hero;
echo 更改成功<br>;
}
else
{
echo 沒有找到<br>;
}
}
}
//創(chuàng)建head頭
$head = new hero();
//第一個
$hero = new hero(1,'111');
//連接
$head->next = $hero;
//第二個
$hero2 = new hero(3,'333');
//連接
hero::addhero($head,$hero2);
$hero3 = new hero(2,'222');
hero::addherosorted($head,$hero3);
//顯示
hero::showlist($head);
//刪除
hero::deletehero($head,4);
//顯示
hero::showlist($head);
//更改
$hero4=new hero(2,'xxx');
hero::updatehero($head,$hero4);
//顯示
hero::showlist($head);
有序的插入的話需要遍歷一遍鏈表,鏈表的一些知識就不介紹了哈。這里主要分享一下代碼。
更多信息請查看IT技術專欄