php中链表的详细介绍
这篇文章主要介绍“php中链表的详细介绍”,在日常操作中,相信很多人在php中链表的详细介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php中链表的详细介绍”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
公司主营业务:成都做网站、成都网站制作、成都外贸网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联推出阳曲免费做网站回馈大家。
链表:是由一系列节点构成的数据结构。
每个节点包含两个部分:一个是存储数据的数据域;一个是存储下一个节点的地址的指针域。
以下是本人用PHP实现的一个简单的链表案例,仅供学习,请多多指教。
/*
节点类
**/
class listnode
{
public $id;//节点ID
public $name;//节点名称
public $next;//下一个节点
//节点构造函数
public function __construct($id,$name)
{
$this->id=$id;
$this->name=$name;
$this->next=null;
}
}
/*
链表类
**/
class linklist
{
private $header;
//链表构造函数
public function __construct($id=null,$name=null)
{
$this->header=new listnode($id,$name);
}
//增加节点
public function add_list_node($id,$name)
{
$node=new listnode($id,$name);
$tmp=$this->header;
$exists=false;
while($tmp->next!==null)
{
if($tmp->next->id == $node->id)
{
$exists=true;
break;
}
if($tmp->next->id > $node->id )
{
break;
}
$tmp=$tmp->next;
}
if(!$exists)
{
$node->next=$tmp->next;
$tmp->next=$node;
}
else
{
echo '节点ID不能中复';
}
}
//输出链表
public function display()
{
$tmp=$this->header;
if($tmp->next===null)
{
echo '链表为空!';
return ;
}
while($tmp->next!==null)
{
echo 'id:'.$tmp->next->id.' name:'.$tmp->next->name.'-->';
$tmp=$tmp->next;
}
}
//查找节点
public function find($id)
{
$tmp=$this->header;
if($tmp->next===null)
{
echo '链表为空,没有找到节点
';
}
while($tmp->next!==null)
{
if($tmp->next->id=$id)
{
return $tmp->next;
}
$tmp=$tmp->next;
}
}
//删除节点
public function delnode($id)
{
$tmp=$this->header;
if($tmp->next===null)
{
echo '链表为空!
';
return ;
}
while($tmp->next!==null)
{
if($tmp->next->id==$id)
{
$tmp->next=$tmp->next->next;
break;
}
$tmp=$tmp->next;
}
}
//更新节点NAME
public function updatenode($id,$name)
{
$tmp=$this->header;
if($tmp->next===null)
{
$node=new listnode($id,$name);
$node->next=$tmp->next;
$tmp->next=$node;
}
$flag=false;
while($tmp->next!==null)
{
if($tmp->next->id==$id)
{
$tmp->next->name=$name;
$flag=true;
break;
}
$tmp=$tmp->next;
}
if(!$flag)
{
$node=new listnode($id,$name);
$node->next=$tmp->next;
$tmp->next=$node;
}
}
}
header('content-type:text/html;charset=utf-8');
$linklist=new linklist();
$linklist->display();
echo '
';
$linklist->updatenode(9,'节点9');
echo '
';
$linklist->display();
echo '
';
$linklist->add_list_node(1,'节点1');
$linklist->display();
echo '
';
$linklist->add_list_node(2,'节点2');
$linklist->add_list_node(3,'节点3');
$linklist->add_list_node(4,'节点4');
$linklist->add_list_node(5,'节点5');
$linklist->add_list_node(6,'节点6');
$linklist->display();
$linkl=$linklist->find(1);
echo '
';
echo $linkl->id.' name:'.$linkl->name;
$linklist->delnode(3);
echo '
';
$linklist->display();
echo '
';
$linklist->add_list_node(3,'节点3');
echo '
';
$linklist->display();
$linklist->add_list_node(8,'节点8');
echo '
';
$linklist->display();
$linklist->add_list_node(7,'节点7');
echo '
';
$linklist->display();
$linklist->delnode(8);
echo '
';
$linklist->display();
echo '
';
$linklist->updatenode(9,'节点9');
echo '
';
$linklist->display();
echo '
';
?>
到此,关于“php中链表的详细介绍”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!
文章名称:php中链表的详细介绍
URL标题:http://scyanting.com/article/gocsch.html