棧和佇列都是乙個元素的集合,都能提供增加、刪除、迭代、判斷是否為空4個操作。
在棧中,刪除操作刪除的是最後新增的元素。
在佇列中,刪除操作刪除的是最早新增的元素。
push()
pop()
isempty()
將乙個鍊錶中第乙個節點刪掉,並將第二個節點設為首節點。
將新的節點加入到鍊錶的頭部。
在最壞情況下,每個操作的複雜度都是1。
棧中的每個元素都使用大約40個位元組。
public
class
linkedstack
private
node first;
public
linkedstack()
public
void
push(t value)
public
t pop()
public
boolean
isempty()
}
棧也可以使用陣列來實現,但缺點是超過容量n時就會溢位。
下溢:當彈出空的棧時丟擲異常
溢位:當超過容量時,要調整陣列的大小
允許新增null值
引用乙個不再使用的物件,這樣會造成記憶體無法釋放,造成記憶體浪費。
public
class
arraystack
public
void
push(t t)
public
t pop()
public
boolean
isempty()
}
普林斯頓大學演算法公開課筆記 插入排序
演算法 排序,algorithms part1插入排序 插入排序 insertion sort 的基本思想是 每次將乙個待排序的記錄,按其關鍵字大小插入到前面已經排好序的子檔案中的適當位置,直到全部記錄插入完成為止。極客學院 演算法描述 從第乙個元素開始,該元素可以認為已經被排序 取出下乙個元素,在...
普林斯頓大學演算法公開課筆記 插入排序
演算法 排序,algorithms part1插入排序 插入排序 insertion sort 的基本思想是 每次將乙個待排序的記錄,按其關鍵字大小插入到前面已經排好序的子檔案中的適當位置,直到全部記錄插入完成為止。極客學院 演算法描述 從第乙個元素開始,該元素可以認為已經被排序 取出下乙個元素,在...
普林斯頓公開課 演算法1 9 並查集 快速合併
本節講的是並查集的另外一種實現方法。這種方法的合併操作開銷很小,但是查詢操作開銷很大。這種演算法的資料結構和快速查詢方法的資料結構是一樣的,也是n個整數組成的陣列。陣列中每個元素id i 的含義是指i的上級是id i 乙個節點的根節點就是id id id id i 一直迴圈直到數值不再變化為止。由於...