php小教程之实现链表
来源: 阅读:933 次 日期:2014-10-08 14:04:04
温馨提示: 小编为您整理了“php小教程之实现链表”,方便广大网友查阅!

看了很久数据结构但是没有怎么用过,在网上看到了关于php的数据结构,学习了一下,与大家一起分享一下。

代码如下:

class hero

{

public $no;//排名

public $name;//名字

public $next=null;//$next是一个引用,指向另外一个hero的对象实例

public function __construct($no='',$name='')

{

$this->no=$no;

$this->name=$name;

}

static public function showlist($head)

{

$cur = $head;

while($cur->next!=null)

{

echo 排名:.$cur->next->no.,名字:.$cur->next->name.<br>;

$cur = $cur->next;

}

}

//普通插入

static public function addhero($head,$hero)

{

$cur = $head;

while($cur->next!=null)

{

$cur = $cur->next;

}

$cur->next=$hero;

}

//有序的链表的插入

static public function addherosorted($head,$hero)

{

$cur = $head;

$addno = $hero->no;

while($cur->next->no <= $addno)

{

$cur = $cur->next;

}

/*$tep = new hero();

$tep = $cur->next;

$cur->next = $hero;

$hero->next =$tep;*/

$hero->next=$cur->next;

$cur->next=$hero;

}

static public function deletehero($head,$no)

{

$cur = $head;

while($cur->next->no != $no && $cur->next!= null)

{

$cur = $cur->next;

}

if($cur->next->no != null)

{

$cur->next = $cur->next->next;

echo 删除成功<br>;

}

else

{

echo 没有找到<br>;

}

}

static public function updatehero($head,$hero)

{

$cur = $head;

while($cur->next->no != $hero->no && $cur->next!= null)

{

$cur = $cur->next;

}

if($cur->next->no != null)

{

$hero->next = $cur->next->next;

$cur->next = $hero;

echo 更改成功<br>;

}

else

{

echo 没有找到<br>;

}

}

}

//创建head头

$head = new hero();

//第一个

$hero = new hero(1,'111');

//连接

$head->next = $hero;

//第二个

$hero2 = new hero(3,'333');

//连接

hero::addhero($head,$hero2);

$hero3 = new hero(2,'222');

hero::addherosorted($head,$hero3);

//显示

hero::showlist($head);

//删除

hero::deletehero($head,4);

//显示

hero::showlist($head);

//更改

$hero4=new hero(2,'xxx');

hero::updatehero($head,$hero4);

//显示

hero::showlist($head);

有序的插入的话需要遍历一遍链表,链表的一些知识就不介绍了哈。这里主要分享一下代码。

更多信息请查看IT技术专栏

更多信息请查看网络编程
手机网站地址:php小教程之实现链表
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!

2025国考·省考课程试听报名

  • 报班类型
  • 姓名
  • 手机号
  • 验证码
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map