php单链表的解决办法

内容摘要
这篇文章主要为大家详细介绍了php单链表的简单示例,具有一定的参考价值,可以用来参考一下。

感兴趣的小伙伴,下面一起跟随php教程的小玲来看看吧!

代码如下:


<?php
/* php
文章正文

这篇文章主要为大家详细介绍了php单链表的简单示例,具有一定的参考价值,可以用来参考一下。

感兴趣的小伙伴,下面一起跟随php教程的小玲来看看吧!

代码如下:


<?php
/*   php教程 www.512Pic.com   */

//链表节点class node { public $id; //节点id public $name; //节点名称 public $next; //下一节点

public function __construct($id, $name) { $this->id = $id; $this->name = $name; $this->next = null; }}

//单链表class singelLinkList { private $header; //链表头节点

//构造方法 public function __construct($id = null, $name = null) { $this->header = new node ( $id, $name, null ); } //获取链表长度 public function getLinkLength() { $i = 0; $current = $this->header; while ( $current->next != null ) { $i ++; $current = $current->next; } return $i; } //添加节点数据 public function addLink($node) { $current = $this->header; while ( $current->next != null ) { if ($current->next->id > $node->id) { break; } $current = $current->next; } $node->next = $current->next; $current->next = $node; } //删除链表节点 public function delLink($id) { $current = $this->header; $flag = false; while ( $current->next != null ) { if ($current->next->id == $id) { $flag = true; break; } $current = $current->next; } if ($flag) { $current->next = $current->next->next; } else { echo "未找到id=" . $id . "的节点!<br>"; } } //获取链表 public function getLinkList() { $current = $this->header; if ($current->next == null) { echo ("链表为空!"); return; } while ( $current->next != null ) { echo 'id:' . $current->next->id . ' name:' . $current->next->name . "<br>"; if ($current->next->next == null) { break; } $current = $current->next; } } //获取节点名字 public function getLinkNameById($id) { $current = $this->header; if ($current->next == null) { echo "链表为空!"; return; } while ( $current->next != null ) { if ($current->id == $id) { break; } $current = $current->next; } return $current->name; } //更新节点名称 public function updateLink($id, $name) { $current = $this->header; if ($current->next == null) { echo "链表为空!"; return; } while ( $current->next != null ) { if ($current->id == $id) { break; } $current = $current->next; } return $current->name = $name; }}

$lists = new singelLinkList ();$lists->addLink ( new node ( 5, 'eeeeee' ) );$lists->addLink ( new node ( 1, 'aaaaaa' ) );$lists->addLink ( new node ( 6, 'ffffff' ) );$lists->addLink ( new node ( 4, 'dddddd' ) );$lists->addLink ( new node ( 3, 'cccccc' ) );$lists->addLink ( new node ( 2, 'bbbbbb' ) );$lists->getLinkList ();echo "<br>-----------删除节点--------------<br>";$lists->delLink ( 5 );$lists->getLinkList ();

echo "<br>-----------更新节点名称--------------<br>";$lists->updateLink ( 3, "222222" );$lists->getLinkList ();

echo "<br>-----------获取节点名称--------------<br>";echo $lists->getLinkNameById ( 5 );

echo "<br>-----------获取链表长度--------------<br>";echo $lists->getLinkLength ();?>

注:关于php单链表的简单示例的内容就先介绍到这里,更多相关文章的可以留意

代码注释

作者:喵哥笔记

IDC笔记

学的不仅是技术,更是梦想!