棧是在數(shù)據(jù)結(jié)構(gòu)中比較常見(jiàn)的一種形式,棧是采用典型的先進(jìn)后出的操作方式完成的。
棧是采用先進(jìn)后出的數(shù)據(jù)存儲(chǔ)方式,每一個(gè)棧都包含一個(gè)棧頂,每次出棧是將棧頂?shù)臄?shù)據(jù)取出

在java中使用Stack類(lèi)進(jìn)行棧的操作,Stack類(lèi)是Vector的子類(lèi),Stack的定義如下
public class Stack<E>extends Vector<E>

事例
package com.qn.test;
import java.util.Stack;
public class StackTest {
public static void main(String[] args) {
Stack<String> s=new Stack<String>();
s.push("A");//入棧
s.push("B");//入棧
s.push("C");//入棧
s.push("D");//入棧
System.out.println(s.pop());//先進(jìn)后出
System.out.println(s.pop());//先進(jìn)后出
System.out.println(s.pop());//先進(jìn)后出
System.out.println(s.pop());//先進(jìn)后出
}
}
結(jié)果

如果棧中沒(méi)有內(nèi)容了,則無(wú)法繼續(xù)出棧
如下
package com.qn.test;
import java.util.Stack;
public class StackTest {
public static void main(String[] args) {
Stack<String> s=new Stack<String>();
s.push("A");//入棧
s.push("B");//入棧
s.push("C");//入棧
s.push("D");//入棧
System.out.println(s.pop());//先進(jìn)后出
System.out.println(s.pop());//先進(jìn)后出
System.out.println(s.pop());//先進(jìn)后出
System.out.println(s.pop());//先進(jìn)后出
System.out.println(s.pop());//先進(jìn)后出
}
}
會(huì)出下面的空棧異常
