本文实例讲述了php链表用法。分享给大家供大家参考。具体如下:

这里简单介绍了php链表的基本用法,包括链表节点的创建、遍历、更新等操作。

<?php
/**

  • @author MzXy
  • @copyright 2011
  • @param PHP链表
    /
    /**

    节点类/
    class Node
    {
    private $Data;//节点数据
    private $Next;//下一节点
    public function setData($value){
    $this->Data=$value;
    }
    public function setNext($value){
    $this->Next=$value;
    }
    public function getData(){
    return $this->Data;
    }
    public function getNext(){
    return $this->Next;
    }
    public function construct($data,$next){
    $this->setData($data);
    $this->setNext($next);
    }
    }//功能类
    class LinkList
    {
    private $header;//头节点
    private $size;//长度
    public function getSize(){
    $i=0;
    $node=$this->header;
    while($node->getNext()!=null)
    { $i++;
    $node=$node->getNext();
    }
    return $i;
    }
    public function setHeader($value){
    $this->header=$value;
    }
    public function getHeader(){
    return $this->header;
    }
    public function
    construct(){
    header(“content-type:text/html; charset=utf-8”);
    $this->setHeader(new Node(null,null));
    }
    /
    @author MzXy@param $data—要添加节点的数据
    /
    public function add($data)
    {
    $node=$this->header;
    while($node->getNext()!=null)
    {
    $node=$node->getNext();
    }
    $node->setNext(new Node($data,null));
    }
    /

    @author MzXy@param $data—要移除节点的数据
    /
    public function removeAt($data)
    {
    $node=$this->header;
    while($node->getData()!=$data)
    {
    $node=$node->getNext();
    }
    $node->setNext($node->getNext());
    $node->setData($node->getNext()->getData());
    }
    /
    @author MzXy@param 遍历
    /
    public function get()
    {
    $node=$this->header;
    if($node->getNext()==null){
    print(“数据集为空!”);
    return;
    }
    while($node->getNext()!=null)
    {
    print($node->getNext()->getData());
    if($node->getNext()->getNext()==null){break;}
    $node=$node->getNext();
    }
    }
    /

    @author MzXy@param $data—要访问的节点的数据
    • @param 此方法只是演示不具有实际意义
      /
      public function getAt($data)
      {
      $node=$this->header->getNext();
      if($node->getNext()==null){
      print(“数据集为空!”);
      return;
      }
      while($node->getData()!=$data)
      {
      if($node->getNext()==null){break;}
      $node=$node->getNext();
      }
      return $node->getData();
      }
      /*@author MzXy
      @param $value—需要更新的节点的原数据 —$initial—-更新后的数据
      */
      public function update($initial,$value)
      {
      $node=$this->header->getNext();
      if($node->getNext()==null){
      print(“数据集为空!”);
      return;
      }
      while($node->getData()!=$data)
      {
      if($node->getNext()==null){break;}
      $node=$node->getNext();
      }
      $node->setData($initial);
      }
      }
      ?>

更多相关文章

  1. 对android内置的sqlLite数据库进行增、删、改、查操作
  2. Android——XML解析
  3. android 客户端 smtp 协议发送数据
  4. Android(安卓)Message里传送的数据
  5. 读取指定路径数据库的方法
  6. 【北亚数据恢复】服务器raid阵列瘫痪导致ZFS文件系统元文件损坏
  7. Android(安卓)数据库操作
  8. 关于android Http访问,上传,用了三个方法
  9. android 本地存储数据

随机推荐

  1. android常用颜色
  2. android 的button
  3. Binder子系统之调试分析(三)
  4. android加分割线
  5. Android使用贝塞尔曲线画心形
  6. Android(安卓)解决WebView支持WebGL的兼
  7. Android系列之Android 命令行手动编译打
  8. Android shell命令大全
  9. Android软键盘弹出,界面整体上移的问题
  10. android listview去掉分割线