鍊錶節點插入
new_node->next = p->next;
p->next = new_node;
鍊錶節點刪除
p->next = p->next->next;
上述兩個鍊錶操作,對於空節點或者最後乙個節點場景,會有異常。
帶有頭節點(哨兵節點)的鍊錶思路:
這個思路形似用空間換時間
。
即用增加包裹節點
換減少乙個判斷語句
。
減少乙個判斷語句
不僅提高電腦執行速度,也減輕人腦閱讀**負擔。
示例如下:
const log = console.log.bind(this);
const obj = ;
// 帶有頭節點的空鍊錶
const linked_list_with_head = ;
// 帶有頭節點的非空鍊錶
// key是唯一的
const demo = }}};
const find_with_head = (l, key)=>
return node;
};const insert_with_head = (l,x)=>;
const delete_with_head = (l, x)=>
prev.next = x.next;
return l;
}const one_node = find_with_head(demo, 77);
delete_with_head(demo, one_node);
log(
json.stringify(demo)
);
單鏈表反轉
鍊錶中環的檢測
兩個有序的鍊錶合併
刪除鍊錶倒數第 n 個結點
求鍊錶的中間結點
刪除鍊錶中的重複節點
資料結構與演算法之美
什麼是資料結構?什麼是演算法 狹義重點 複雜度分析 方法 邊學邊練,適度刷題 複雜度分析 時間複雜度 常見時間複雜度 非多項式量級 非常低效的演算法 空間複雜度 漸進空間複雜度,表示演算法的儲存空間和資料規模的增長關係 最好情況時間複雜度 理想情況的時間複雜度 最壞情況時間複雜度 最糟糕的情況下的時...
極客時間 資料中心 CDN學習筆記
分布在各個地方的各個資料中心的節點,就稱為邊緣節點。在沒有 cdn 的情況下,使用者向瀏覽器輸入 www.web.com 這個網域名稱,客戶端訪問本地 dns伺服器的時候,如果本地 dns 伺服器有快取,則返回 的位址 如果沒有,遞迴查詢到 的權威 dns 伺服器,這個權威 dns 伺服器是負責 w...
資料結構與演算法之美(筆記9)雜湊演算法
我們前面講到雜湊表,雜湊函式,這裡又是雜湊演算法,實際上,雜湊函式就是雜湊演算法的乙個特例。只不過在雜湊表中,我們通常希望雜湊函式簡單,才不會影響查詢等的效能。雜湊演算法的定義和原理很簡單,就是把任意二進位制串值對映為固定長度的二進位制值串,這個對映的規則就是雜湊演算法,而通過原始的資料對映之後得到...