什麼是單向鍊錶
鍊錶是以鏈式儲存資料的結構,其不需要連續的儲存空間,鍊錶中的資料以節點來表示,每個節點由元素(儲存資料)和指標(指向後繼節點)組成。
單向鍊錶(也叫單鏈表)是鍊錶中最簡單的一種形式,每個節點只包含乙個元素和乙個指標。
它有乙個表頭,並且除了最後乙個節點外,所有節點都有其後繼節點。
它的儲存結構如下圖所示
**實現
定義節點
class node
}
單鏈表實現
/**
* class singlelinklist
* 單鏈結的實現示例,實現簡單的填加,插入,刪除, 查詢,長度,遍歷這幾個簡單操作
*/class singlelinklist
/*** 在鍊錶末尾新增節點
* @param node $node
* @return int
*/public function addnode(node $node)
$current->next = $node;
return ++$this->size;
}/**
* 在指定位置插入節點
* @param int $index 節點位置,從1開始計數
* @param node $node
* @return int
* @throws exception
*/public function insertnodebyindex($index, node $node)
$current = $this->header;
$tempindex = 1;
do } while ($current->next != null && ($current = $current->next));
return ++$this->size;
}/**
* 刪除節點
* @param int $index 節點位置,從1開始計數
* @return int
* @throws exception
*/public function deletenodebyindex($index)
$current = $this->header;
$tempindex = 1;
do } while ($current->next != null && ($current = $current->next));
return --$this->size;
}/**
* 查詢節點
* @param int $index 節點位置,從1開始計數
* @return node|null
* @throws exception
*/public function searchnodebyindex($index)
$current = $this->header;
$tempindex = 1;
do } while ($current->next != null && ($current = $current->next));
}/**
* 獲取節點長度
* @return int
*/public function getlength()
/*** 遍歷列表
*/public function shownode()}}
示例
$link = new singlelinklist();
$link->addnode(new node(1));
$link->addnode(new node(2));
$link->insertnodebyindex(3, new node(3));
$link->addnode(new node(4));
$link->addnode(new node(5));
echo $link->getlength(), php_eol;
$link->shownode();
echo '-----------', php_eol;
var_dump($link->searchnodebyindex(3));
echo '-----------', php_eol;
$link->deletenodebyindex(3);
$link->shownode();
php實現資料結構 單向鍊錶
什麼是單向鍊錶 鍊錶是以鏈式儲存資料的結構,其不需要連續的儲存空間,鍊錶中的資料以節點來表示,每個節點由元素 儲存資料 和指標 指向後繼節點 組成。單向鍊錶 也叫單鏈表 是鍊錶中最簡單的一種形式,每個節點只包含乙個元素和乙個指標。它有乙個表頭,並且除了最後乙個節點外,所有節點都有其後繼節點。它的儲存...
資料結構 單向鍊錶(java實現)
public class node 為節點追加節點 當前節點 node currentnode this while true 賦值當前節點 currentnode nextnode 把需要追回的節點追加為找到的節點的下乙個節點 currentnode.next node return this 刪...
資料結構 單向鍊錶的實現
單向鍊錶的實現 記錄 非常菜雞的開始 節點中定義節點時 成員變數要寫struct 因為沒寫報了一堆錯 老師節點裡的node都是變數型別,只有linknode內部是指標型別,內部使用指標,指標大小為4個位元組 可以分配記憶體很方便。注意teacher輸入的時候為位址 各種指標型別的轉換 main函式中...