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);