1、棧(stack
)是限制僅在表的一端進行插入和刪除運算的線性表。
(1)通常稱插入、刪除的這一端為棧頂 (
top),另一端稱為棧底 (
bottom
)。
(2)當表中沒有元素時稱為空棧。
(3)棧為後進先出(
last in first out
)的線性表,簡稱為
lifo 表。
2、棧的修改是按後進先出的原則進行。每次刪除(退棧)的總是當前棧中" 最新"
的元素,即最後插入(進棧)的元素,而最先插入的是被放在棧的底部, 要到最後才能刪除。
【示例】元素是以a1,a2
,…,an
的順序進棧,退棧的次序卻是an,
an-1
,…,
a1。
package com.wqc.stack;
public class linkstack
public node(e e, node next)
//也可以通過get set設定元素的值 }
private nodetop; //棧頂元素
private int size; //當前棧的大小
public linkstack()
//獲得棧的大小
public int length()
//判斷棧是否為空
public boolean isempty()
//初始化棧 ----基於鍊錶的棧不存在初始化,因為存在泛型
public void initstack(int nodenum) }
//入棧
public boolean push(e e)
//出棧
public e pop() else }
//遍歷棧
public void display()
while(top != null) }
public static void main(string args)
}
package com.wqc.stack;
public class arraystack
public arraystack(int initialsize) else }
//判空
public boolean isempty()
//入棧
public void push(e e)else }
//出棧
public e pop() }
//遍歷棧
public void display()
} }//返回物件在棧中的位置
public int search(e e)
while(i != -1) else
} return i + 1; }
public static void main(string args)
}
Java資料結構之陣列棧的實現
棧是一種後進先出的資料結構 last in first out lifo public class array data newdata 建構函式 param capacity public array int capacity 無參建構函式,初始化陣列容量為10 public array 獲取陣列...
資料結構 2 棧結構(java實現棧結構)
棧結構是按照 後進先出 last in first out,lifo 的原則處理資料的。在棧結構中,只有棧定的元素是可以訪問的。public class stack 入棧同時棧頂下標加1 public void push int elem else 出棧刪除棧頂元素,同時棧頂元素下標減1 publi...
資料結構之棧實現
ps 棧用類實現比較好,可以同時管理多種資料結構。不過對於剛剛接觸的我來說,就看著數,按著書上的流程走吧。我會盡力把棧的特點講解清楚,以後有了更深入的了解,我會再來補充的。逆波蘭表示法 是一種將運算子寫在運算元後面的描述程式 算式 的方法。舉個例子,我們平常用中綴表示法描述的算式 1 2 5 4 改...