class Node: Node *prev Node *next key class LinkedList: Node *sentinel # 哨兵 # 初始化為空串列 init(): sentinel ← 產生節點 sentinel.next ← sentinel # 指向自己 sentinel.prev ← sentinel # 指向自己 # data 插入資料 insert(data): # 產生節點並指定資料內容及指標 Node *x ← 產生節點 x.key ← data # 設定資料內容 x.next ← sentinel.next x.prev ← sentinel # 設定哨兵及原本位於最前端的節點指標 sentinel.next.prev ← x sentinel.next ← x # 尋找資料內容為 k 的節點 listSearch(k): Node *cur ← sentinel.next # 從哨兵正後方的元素開始追蹤 while cur ≠ sentinel and cur.key ≠ k: cur ← cur.next return cur deleteNode(Node *t): if t = sentinel: return # 若 t 為哨兵則不進行處理 t.prev.next ← t.next t.next.prev ← t.prev 釋放 t 的記憶體 # 將資料內容為 k 的節點刪除 deleteKey(k): deleteNode(listSearch(k)) # 將取得的節點刪除