利用PHP怎么插入与删除双链表-创新互联

利用PHP怎么插入与删除双链表?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

创新互联提供成都网站设计、网站制作、网页设计,品牌网站制作1元广告等致力于企业网站建设与公司网站制作,10多年的网站开发和建站经验,助力企业信息化建设,成功案例突破数千家,是您实现网站建设的好选择.

概述:


双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。

实现代码:

data=$data;
    $this->prev=$prev;
    $this->next=$next;
  }
}
class doubleLinkList{
  private $head;
  public function __construct()
  {
    $this->head=new node("head",null,null);
  }
  //插入节点
  public function insertLink($data){
    $p=new node($data,null,null);
    $q=$this->head->next;
    $r=$this->head;
    while($q){
      if($q->data>$data){
        $q->prev->next=$p;
        $p->prev=$q->prev;
        $p->next=$q;
        $q->prev=$p;
      }else{
      $r=$q;$q=$q->next;
      }
    }
    if($q==null){
      $r->next=$p;
      $p->prev=$r;
    }
  }
  //从头输出节点
  public function printFromFront(){
    $p=$this->head->next;
    $string="";
    while($p){
    $string.=$string?",":"";
    $string.=$p->data;
    $p=$p->next;
    }
    echo $string."
";   }   //从尾输出节点   public function printFromEnd(){     $p=$this->head->next;     $r=$this->head;     while($p){     $r=$p;$p=$p->next;     }     $string="";     while($r){       $string.=$string?",":"";       $string.=$r->data;       $r=$r->prev;     }     echo $string."
";   }   public function delLink($data){     $p=$this->head->next;     if(!$p)     return;     while($p){       if($p->data==$data)       {         $p->next->prev=$p->prev;         $p->prev->next=$p->next;         unset($p);         return;       }       else{         $p=$p->next;       }     }     if($p==null)     echo "没有值为{$data}的节点";   } } $link=new doubleLinkList(); $link->insertLink(1); $link->insertLink(2); $link->insertLink(3); $link->insertLink(4); $link->insertLink(5); $link->delLink(3); $link->printFromFront(); $link->printFromEnd(); $link->delLink(6);

运行结果:

1,2,4,5
5,4,2,1,head
没有值为6的节点

看完上述内容,你们掌握利用PHP怎么插入与删除双链表的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


新闻名称:利用PHP怎么插入与删除双链表-创新互联
转载源于:http://scyanting.com/article/djdopp.html