PHP单链表的实现代码
单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。
单链表简介
链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象)+指针(指示后继元素存储位置),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。
关键代码如下所示:
<?php /** *单链表 */ classDemo { private$id; public$name; public$next; publicfunction__construct($id='',$name='') { $this->id=$id; $this->name=$name; } staticpublicfunctionshow($head) { $cur=$head; while($cur->next){ echo$cur->next->id,'###',$cur->next->name,'<br/>'; $cur=$cur->next; } echo'<hr/>'; } //尾插法 staticpublicfunctionpush($head,$node) { $cur=$head; while(NULL!=$cur->next){ $cur=$cur->next; } $cur->next=$node; return$head; } staticpublicfunctioninsert($head,$node) { $cur=$head; while(NULL!=$cur->next){ if($cur->next->id>$node->id){ break; } $cur=$cur->next; } $node->next=$cur->next; $cur->next=$node; return$head; } staticpublicfunctionedit($head,$node) { $cur=$head; while(NULL!=$cur->next){ if($cur->next->id==$node->id){ break; } $cur=$cur->next; } $cur->next->name=$node->name; return$head; } staticpublicfunctionpop($head,$node) { $cur=$head; while(NULL!=$cur->next){ if($cur->next==$node){ break; } $cur=$cur->next; } $cur->next=$node->next; return$head; } } $team=newDemo(); $node1=newDemo(1,'唐三藏'); Demo::push($team,$node1); $node1->name='唐僧'; Demo::show($team); //Demo::show($team); $node2=newDemo(2,'孙悟空'); Demo::insert($team,$node2); //Demo::show($team); $node3=newDemo(5,'白龙马'); Demo::push($team,$node3); //Demo::show($team); $node4=newDemo(3,'猪八戒'); Demo::insert($team,$node4); //Demo::show($team); $node5=newDemo(4,'沙和尚'); Demo::insert($team,$node5); //Demo::show($team); $node4->name='猪悟能';//php对象传引用,所以Demo::edit没有必要 //unset($node4); //$node4=newDemo(3,'猪悟能'); //Demo::edit($team,$node4); Demo::pop($team,$node1); Demo::show($team);
以上所述是小编给大家介绍的PHP单链表的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!