PHP資料結構之 鍊錶

2021-07-10 19:25:02 字數 1333 閱讀 3655

鍊錶是一種在邏輯上連續、有序的資料儲存結構(在物理儲存單元上非連續非有序)。在我大學的時候,學習c++的資料結構課程時,最先接觸的就是鍊錶(大學是學渣別噴...)

那麼鍊錶是怎樣的一種結構呢?

用「形象的」文本來描述就是:

node_1->node_2->node_3->node_4->...->node_n , 每乙個node包含一些儲存的資料

鍊錶就是這麼個東西。那麼鍊錶有幾種型別呢?基本型鍊錶大致可以分成以下幾種:

1,單向鍊錶

2,雙向鍊錶

3,單向迴圈鍊錶

4,雙向迴圈鍊錶

5,十字鍊錶(也可以劃分為有向圖)

那麼鍊錶在php是如何實現的呢?話不多說,直接上**(乙個雙向迴圈鍊錶的樣例,**low勿噴)

linkedlist.php

<?php 

class node

//建立節點的左右節點關係

public function linkednode($left_id, $right_id)

}class linkedlist

//建立n個節點的雙向鍊錶

public function createlist($n) else elseif($i == $n-1) else }}

$this->_list = $node;

return $this->_list;

}//從任一節點開始遍歷整條鏈(可以選擇方向)

public function iteratelist($id = 0) else

$id ++;

$count ++;

}echo "

"; }

//獲取鍊錶中某一節點的資訊

public function getonenode($id) else

}}$linkedlist = new linkedlist(1);//建立id為1的鍊錶

$linkedlist->createlist(10);//為id為1的鍊錶建立10個節點

//獲取乙個不存在的節點資訊

$linkedlist->getonenode(20);

//獲取乙個存在的節點資訊

$linkedlist->getonenode(2);

//從乙個節點的位置開始遍歷整個鍊錶

$linkedlist->iteratelist(2);

ps:未新增增加節點、修改節點、刪除節點的方法,有需要可以自行新增

資料結構 表之煉表

頭插法建立 尾插法建立 顯示 銷毀 include include using namespace std typedef int elemtype typedef struct lnode linklist void createlinklistf linklist l,elemtype a,in...

資料結構之鍊錶

頭結點 第乙個有效結點之前的那個結點 頭結點並不存有效資料 加頭結點的目的主要是為了方便對鍊錶的操作 頭指標 指向頭結點的指標變數 尾指標 指向尾節點的指標變數 如果希望通過乙個函式對鍊錶進行處理,只需要乙個引數 頭指標 首先要定義乙個單鏈表儲存結構 然後建立乙個空表,即初始化,我寫的這個提前設定好...

資料結構之鍊錶

鍊錶是一種基本的資料結構型別,它由乙個個結點組成。每乙個結點包括乙個資料的儲存和乙個指向下乙個結點的引用。在這個定義中,結點是乙個可能含有任意型別資料的抽象實體,它所包含的指向結點的應用顯示了它在構造鍊錶之中的作用。和遞迴程式一樣,遞迴資料結構的概念一開始也令人費解,但其實它的簡潔性賦予了它巨大的價...