## 概念簡述
## 特點
## 應用
## 原理實現
## 時間複雜度分析
一種只能從一端新增/取出元素的線性結構,相比於陣列操作較少,對應的操作是陣列的子集,可以簡單理解
為就是乙個操作受限並且元素排列存放的陣列
1.只能從一端進行操作(棧頂),即只能從一端新增元素(入棧)或取出元素(出棧)
2. 對於使用者而言,棧內元素不可見更不允許操作,只能夠看到/操作棧頂元素
3. 儲存元素後進先出(lifo:last in first out)
1.撤銷/回退操作
2.系統棧
1. 準備介面
// 準備介面
public inte***ce stack
2. 準備實現類
// 準備實現類
public class arraystackimplements stack
public arraystack(int capacity)
@override
public int getsize()
@override
public boolean isempty()
@override
public void push(e e)
@override
public e pop()
@override
public e peek()
@override
public string tostring()
}return res.tostring();
}public int getcapacity()
}
3. 準備測試類
// 準備測試類
public static void main(string args)
stack.pop();
system.out.println(stack);
}
void push(e) o(1) //均攤
e pop() o(1) //均攤
e peek() o(1)
int getsize() o(1)
boolean isempty o(1)
[注意]:
由於對於棧的基礎入棧出棧操作時間複雜度為o(1),當涉及到resize方法即發生擴容時,經過均攤複雜度
分析依然為o(1)
資料結構 棧(一)
棧 stack 特殊的線性表,只能在表頭進行插入和刪除操作。又稱為後進先出表 lifo表。因為之前發帖問動態規劃時別人說可以用棧實現動態規劃而去看了看,寫下來留作記錄 棧實現的基本操作有 1 empty 判斷乙個棧是否為空棧 2 full 判斷乙個棧是否為滿棧 與1及其類似 3 top 返回棧頂元素...
資料結構 棧 棧
可以把棧想像成乙個桶 進棧 就是把和桶口一樣大的燒餅往桶裡面扔 出棧 就是把燒餅拿出來 特點 先進後出。先扔進去的燒餅最後才能拿出來,最後扔進去的燒餅,第乙個拿出來 剛開始top 1 top 1 然後把進棧的元素賦值給data top 入棧操作 void push stack s,int x els...
js 資料結構(一) 棧
棧 棧是一種遵從後進先出 lifo 原則的有序集合。新新增的或待刪除的元素都儲存在棧的末尾,稱作棧頂,另一端就叫棧底。在棧裡,新元素都靠近棧頂,舊元素都接近棧頂。現實生活中就有很多棧的例子。如下圖的書本,這一摞書如果要取肯定是先去最上面的那一本,但它是最後乙個放上去的,也就是棧頂的元素都是待新增或是...