文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

php中链表的详细介绍

2024-04-02 19:55

关注

这篇文章主要介绍“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 '链表为空,没有找到节点<br/>';

}

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 '链表为空!<br/>';

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 '<br/>';

$linklist->updatenode(9,'节点9');

echo '<br/>';

$linklist->display();

echo '<br/>';

$linklist->add_list_node(1,'节点1');

$linklist->display();

echo '<br/>';

$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 '<br/>';

echo $linkl->id.'  name:'.$linkl->name;

$linklist->delnode(3);

echo '<br/>';

$linklist->display();

echo '<br/>';

$linklist->add_list_node(3,'节点3');

echo '<br/>';

$linklist->display();

$linklist->add_list_node(8,'节点8');

echo '<br/>';

$linklist->display();

$linklist->add_list_node(7,'节点7');

echo '<br/>';

$linklist->display();

$linklist->delnode(8);

echo '<br/>';

$linklist->display();

echo '<br/>';

$linklist->updatenode(9,'节点9');

echo '<br/>';

$linklist->display();

echo '<br/>';

?>

到此,关于“php中链表的详细介绍”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯