加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_郴州站长网 (http://www.0735zz.com/)- 云通信、区块链、物联设备、云计算、站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php实现单链表的示例代码

发布时间:2022-07-09 05:45:07 所属栏目:PHP教程 来源:互联网
导读:?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 { priv
  <?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 ();
  ?>

(编辑:开发网_郴州站长网)

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

    热点阅读