《資料結構與演算法之美》 常見的鍊錶操作

2021-10-05 19:47:58 字數 1252 閱讀 4236

目錄

單鏈表反轉

兩個有序的鍊錶合併

刪除鍊錶倒數第 n 個結點

迴圈鍊錶----約瑟夫問題

/**

* 翻轉鍊錶

* * 1->2->3

* * @param head

* @return

*/public static node reverselist(node head)

return newhead == null ? head : newhead;

}

/**

* 合併兩個有序鍊錶

* @param l1

* @param l2

* @return

*/public static node mergesortlist(node l1, node l2) else

}if(l1 != null)

if(l2 != null)

temp = head;

head = head.next;

temp = null;

return head;

}

/**

* 刪除鍊錶的倒數第n個節點

* @param head

* @param n

* @return

*/public node removenthfromend(node head, int n)

if (fastnode == null)

while (fastnode.next != null)

slownode.next = slownode.next.next; //刪除

return head;

}

public static void count(int n)

//鍊錶有資料的部分首尾相連形成乙個環。

cur.next = head.next;

//統計開始的時候,刨去頭結點,然後從第乙個有資料的結點開始報數

node p = head.next;

//迴圈退出的條件是最後只剩乙個結點,也就是這個結點的下乙個結點是它本身

while(p.next!=p)

//最後剩下的乙個結點

system.out.println("(left:"+p.data+")");

}

資料結構與演算法之美 鍊錶

如何優雅的寫出鍊錶 6大學習技巧 一 理解指標或引用的含義1.含義 將某個變數 物件 賦值給指標 引用 實際上就是就是將這個變數 物件 的位址賦值給指標 引用 2.示例 p next q 表示p節點的後繼指標儲存了q節點的記憶體位址。p next p next next 表示p節點的後繼指標儲存了p...

資料結構與演算法之美 鍊錶

1.如何實現lru快取淘汰演算法 答 回答這個問題之前,我們首先了解一下什麼是快取 2.鍊錶的三種形式 單鏈表 雙向鍊錶 迴圈鍊錶 簡介一下單鏈表 頭節點用於記錄基位址,有了它我們就可以遍歷整條鍊錶,而尾節點特殊地方不是指向下乙個節點,而是指向乙個空位址。鍊錶因為不是乙個連續的位址,所以不需要考慮連...

《資料結構與演算法之美》筆記 鍊錶

typedef struct node node 陣列和鍊錶都是線性表。陣列必須是連續空間,而鍊錶無所謂。鍊錶 單鏈表 迴圈鍊錶 雙向鍊錶 陣列 插入 刪除的時間複雜度是o n 隨機訪問的時間複雜度是o 1 鍊錶 插入 刪除的時間複雜度是o 1 隨機訪問的時間複雜端是o n 快取淘汰策略 先進先出策...