PHPのリンクリスト

WBOY
リリース: 2016-06-23 14:36:15
オリジナル
825 人が閲覧しました

以前ブログを検索したところ、PHP で実装されたリンク リストは存在せず、Baidu にもほとんど存在しませんでした。ここにコードを投稿してください!

このコードにはいくつかの欠陥があると思いますが、それは何ですか?型の制約が十分に厳密ではないだけです。 PHP 自体は型付けが弱い言語です。

つまり、この分野では少し混乱しています。アドバイスするのを忘れていました!私は初心者です!

コードは次のとおりです

Nodeクラス

              <p class="sycode">              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); } }              </p>
ログイン後にコピー

Functionクラス

              <p class="sycode">              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);  }  }              </p>
ログイン後にコピー

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート