PHP小教程之实现链表
看了很久数据结构但是没有怎么用过,在网上看到了关于PHP的数据结构,学习了一下,与大家一起分享一下。
classHero
{
public$no;//排名
public$name;//名字
public$next=null;//$next是一个引用,指向另外一个Hero的对象实例
publicfunction__construct($no='',$name='')
{
$this->no=$no;
$this->name=$name;
}
staticpublicfunctionshowList($head)
{
$cur=$head;
while($cur->next!=null)
{
echo"排名:".$cur->next->no.",名字:".$cur->next->name."<br>";
$cur=$cur->next;
}
}
//普通插入
staticpublicfunctionaddHero($head,$hero)
{
$cur=$head;
while($cur->next!=null)
{
$cur=$cur->next;
}
$cur->next=$hero;
}
//有序的链表的插入
staticpublicfunctionaddHeroSorted($head,$hero)
{
$cur=$head;
$addNo=$hero->no;
while($cur->next->no<=$addNo)
{
$cur=$cur->next;
}
/*$tep=newHero();
$tep=$cur->next;
$cur->next=$hero;
$hero->next=$tep;*/
$hero->next=$cur->next;
$cur->next=$hero;
}
staticpublicfunctiondeleteHero($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>";
}
}
staticpublicfunctionupdateHero($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>";
}
}
}
//创建head头 $head=newHero(); //第一个 $hero=newHero(1,'111'); //连接 $head->next=$hero; //第二个 $hero2=newHero(3,'333'); //连接 Hero::addHero($head,$hero2); $hero3=newHero(2,'222'); Hero::addHeroSorted($head,$hero3); //显示 Hero::showlist($head); //删除 Hero::deleteHero($head,4); //显示 Hero::showlist($head); //更改 $hero4=newHero(2,'xxx'); Hero::updateHero($head,$hero4); //显示 Hero::showlist($head);