php實現乙個單鏈表

2021-10-04 23:04:03 字數 1028 閱讀 9101

單鏈表,節點只有乙個指標域的鍊錶。節點包括資料域和指標域。

鍊錶乙個很重要的特性,就是這個頭節點$head。它絕對不能少,每次遍歷都要從它開始,並且不能移動頭節點,應該用乙個變數去代替他移動。腦袋裡要有鍊錶的結構。這是關鍵。

來一段**:

<?php

class node

}// 鍊錶有幾個元素

function countnode($head)

return $i;

}// 增加節點

function addnode($head, $data)

$new = new node($data);

$cur->next = $new;

}// 緊接著插在$no後

function insertnode($head, $data, $no)

$cur = $head;

$new = new node($data);

for($i=0; $i<$no;$i++)

$new->next = $cur->next;

$cur->next = $new;

}// 刪除第$no個節點

function delnode($head, $no)

$cur = $head;

for($i=0; $i<$no-1; $i++)

$cur->next = $cur->next->next;

}// 遍歷鍊錶

function shownode($head)

}$head = new node(null);// 定義頭節點

addnode($head, 'a');

addnode($head, 'b');

addnode($head, 'c');

insertnode($head, 'd', 0);

shownode($head);

echo '';

delnode($head, 2);

shownode($head);

反轉乙個單鏈表

思路二 反轉乙個鍊錶 示例 結構體定義 先對原鍊錶做頭刪操作,再對新鍊錶做頭插定義乙個新head頭指標,標記為newhead,將它初始為null,並非指向null,最後我們選擇返回這個newhead指標作為新鍊錶的頭指標。定義乙個結點node作為 臨時中轉站 初始化與否並無大影響。進行迴圈遍歷鍊錶各...

定義乙個單鏈表

鍊錶是一種物理儲存結構上非連續 非順序的儲存結構,資料元素的邏輯順序是通過鍊錶中的指標鏈結次序實現的 鍊錶是由乙個乙個的節點相連線的,每乙個節點都是乙個物件,都有兩個屬性 data,next 根據鍊錶的結構可以分為 1.帶頭 不帶頭 2.單向 雙向 3.迴圈 非迴圈 這些組合起來就有8種結構 編寫乙...

反轉乙個單鏈表

反轉乙個單鏈表。示例 輸入 1 2 3 4 5 null 輸出 5 4 3 2 1 null高階 你可以迭代或遞迴地反轉鍊錶。你能否用兩種方法解決這道題?解題心路 迭代好說,遞迴 第一思路將後面的全部翻轉好,再將最後乙個元素的next指向當前。返回最後乙個元素的指標,那就有 當前節點指標 head ...