清华大学韩顺平讲师讲算法之一,单链表创建、显示、删除、修改
<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>PHP操作mysql多功能类</title><body><?phpclass Hero{public $no;public $name;public $nickname;public $next=null;//是一个引用,指向另一个结点的public function __construct($no='',$name='',$nickname=''){//不要写错了$this->no=$no;$this->name=$name;$this->nickname=$nickname;}function delHero($head,$herono){$cur=$head;while ($cur->next !=null) {if($cur->next->no ==$herono){//找到了退出吧break;}//if$cur=$cur->next;}//whileif($cur->next !=null){//删除了$cur->next=$cur->next->next;}}}//Hero//修改英雄function updateHero($head,$hero){//跑龙套的$cur$cur=$head;while($cur->next !=null){if($cur->next->no==$hero->no){break;}//if$cur=$cur->next;}//当退出while时,$cur->next==null为空,再到了队尾了if($cur->next==null){echo "no";}else{$cur->next->name=$hero->name;}}//updateHerofunction addHero($head,$hero){//1.直接加在链表最后加//2.安英雄的排行$cur=$head;/*while ( $cu->next !=null) {$cur=$cur->next;}//while$cur->next=$hero;*/while($cur->next !=null){if($cur->next->no >=$hero->no){break;}$cur=$cur->next;}$hero->next=$cur->next;$cur->next=$hero;}//addHerofunction showHeros($head){//遍历[必须知道什么时候到了最后]//为了不去改变$head的指向,我们可以使用一个临时变量$cur$cur=$head;while($cur->next !=NULL){echo '英雄的编号:'.$cur->next->no.'名字:'.$cur->next->name;//让cur移动,否则是死了$cur=$cur->next;}//while}//showHeros$head=new Hero();$hero=new Hero(1,'宋江','及时狗');//addHero($head,$hero);$head->next=$hero;$hero2=new Hero(2,"卢俊义",'一兄称');//addHero($head,$hero);$hero->next=$hero2;//单链表的遍历,是从head开始遍历的//$head头的值不能亦空, showHeros($head);?></body></html>对老师表示真诚的感谢与敬意,国内高校需要你这样的老师,感谢你的付出。