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单链表的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!