加入收藏 | 设为首页 | 会员中心 | 我要投稿 草根网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

php实现单链表的示例代码

发布时间:2022-10-25 10:41:01 所属栏目:PHP 来源:
导读:  <?php
  //链表节点
  class node {
  public $id; //节点id
  public $name; //节点名称
  public $next; //下一节点
  public function __construct($id, $name) {
  $this->id = $id;
  <?php
  //链表节点
  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 );
  }
 php实现单链表的示例代码
  //获取链表长度
  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 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 ();
  ?>
 

(编辑:草根网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章