資源簡介
用java寫的簡單棧的實現,歡迎大家使用

代碼片段和文件信息
package?lang;
import?java.io.Serializable;
import?java.util.Arrays;
/**?
?*?@ClassName:?ArrayStack
?*?@Description:?順序棧
?*?@date?2014年1月20日?上午8:47:19
?*?@param?
?*/
public?class?ArrayStack?implements?Serializable?{
??/**
???*?@Fields?serialVersionUID?:?TODO
???*/
??private?static?final?long?serialVersionUID?=?74027006708386243L;
??private?object[]?elementData;//定義一個數組用于保存順序棧的元素
??private?int?size?=?0;//保存順序棧中元素的當前個數
??private?int?capacity;//保存數組的長度
??public?ArrayStack()?{
????elementData?=?new?object[10];//默認長度為10的棧????
??}
??public?ArrayStack(int?initSize)?{
????elementData?=?new?object[initSize];//默認長度為10的棧
??}
??public?ArrayStack(T?element)?{
????this();
????elementData[0]?=?element;
????size++;
??}
??public?ArrayStack(T?element?int?initSize)?{
????this.capacity?=?initSize;
????elementData?=?new?object[capacity];
????elementData[0]?=?element;
????size++;
??}
??/**
???*?@title:?size?????
???*?@Description:?棧長度????
???*?@return
???*/
??public?int?size()?{
????return?size;
??}
??/**
???*?@title:?push?????
???*?@Description:?入棧????
???*?@param?element
???*/
??public?void?push(T?element)?{
????ensureCapacity(size?+?1);
????elementData[size++]?=?element;
??}
??private?void?ensureCapacity(int?minCapacity)?{
????//如果數組的原有長度小于目前所需的長度
????int?oldCapacity?=?elementData.length;
????if?(minCapacity?>?oldCapacity)?{
??????int?newCapacity?=?(oldCapacity?*?3)?/?2?+?1;
??????if?(newCapacity?????????newCapacity?=?minCapacity;
??????//?minCapacity?is?usually?close?to?size?so?this?is?a?win:
??????elementData?=?Arrays.copyOf(elementData?newCapacity);
????}
??}
??/**
???*?@title:?pop?????
???*?@Description:?出棧????
???*?@return
???*/
??public?T?pop()?{
????if?(!isEmpty())?{
??????T?oldValue?=?(T)?elementData[size?-?1];
??????//釋放棧頂元素
??????elementData[--size]?=?null;
??????return?oldValue;
????}?else?{
??????return?null;
????}
??}
??/**
???*?@title:?peek?????
???*?@Description:?返回棧頂元素,但不刪除棧頂元素????
???*?@return
???*/
??public?T?peek()?{
????if?(!isEmpty())?{
??????return?(T)?elementData[size?-?1];
????}?else?{
??????throw?new?IndexOutOfBoundsException(“空棧異常“);
????}
??}
??/**
???*?@title:?empty?????
???*?@Description:?判斷順序棧是否為空棧????
???*?@return
???*/
??public?boolean?isEmpty()?{
????return?size?==?0;
??}
??/**
???*?@title:?clear?????
???*?@Description:?清空順序棧
???*/
??public?void?clear()?{
????//將底層數組所有元素賦為null
????Arrays.fill(elementData?null);
????size?=?0;
??}
??public?String?toString()?{
????if?(size?==?0)?{
??????return?“[]“;
????}?else?{
??????StringBuilder?sb?=?new?StringBuilder(“[“);
??????for?(int?i?=?size?-?1;?i?>?-1;?i--)?{
????????sb.append(elementData[i].toString()?+?“?“);
??????}
??????int?len?=?sb.length();
??????return?sb.delete(len?-?2?len).append(“]“).toString();
????}
??}
??
??public?static?void?main(String[]?args)???
??{??
??????ArrayStack?stack?=??
???????
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????493??2017-07-04?14:49??Stack\.classpath
?????文件????????381??2017-07-04?13:52??Stack\.project
?????文件????????598??2017-07-04?10:50??Stack\.settings\org.eclipse.jdt.core.prefs
?????文件???????3889??2017-07-04?15:57??Stack\bin\lang\ArrayStack.class
?????文件???????1975??2017-07-04?15:57??Stack\bin\lang\ArrayStack2.class
?????文件???????1132??2017-07-04?15:57??Stack\bin\lang\li
?????文件???????3132??2017-07-04?15:57??Stack\bin\lang\li
?????文件???????1460??2017-07-04?15:57??Stack\bin\stack\apply\Conversion.class
?????文件???????1770??2017-07-04?15:57??Stack\bin\stack\apply\LineEdit.class
?????文件??????45024??2017-07-04?14:49??Stack\lib\hamcrest-core-1.3.jar
?????文件??????53070??2017-07-04?14:49??Stack\lib\hamcrest-library-1.3.jar
?????文件?????314932??2017-07-04?14:42??Stack\lib\junit-4.12.jar
?????文件???????3872??2017-07-04?14:03??Stack\src\lang\ArrayStack.java
?????文件???????1478??2017-07-04?14:05??Stack\src\lang\ArrayStack2.java
?????文件???????2919??2017-07-04?14:29??Stack\src\lang\li
?????文件???????1064??2017-07-04?14:46??Stack\src\stack\apply\Conversion.java
?????文件???????1088??2017-07-04?14:55??Stack\src\stack\apply\LineEdit.java
?????目錄??????????0??2017-07-04?15:57??Stack\bin\stack\apply
?????目錄??????????0??2017-07-04?14:54??Stack\src\stack\apply
?????目錄??????????0??2017-07-04?15:57??Stack\bin\lang
?????目錄??????????0??2017-07-04?15:57??Stack\bin\stack
?????目錄??????????0??2017-07-04?14:11??Stack\src\lang
?????目錄??????????0??2017-07-04?14:39??Stack\src\stack
?????目錄??????????0??2017-07-04?10:50??Stack\.settings
?????目錄??????????0??2017-07-04?15:57??Stack\bin
?????目錄??????????0??2017-07-04?14:49??Stack\lib
?????目錄??????????0??2017-07-04?14:39??Stack\src
?????目錄??????????0??2017-07-04?14:41??Stack
-----------?---------??----------?-----??----
???????????????438277????????????????????28
............此處省略1個文件信息
- 上一篇:java管理系統飛機訂票源代碼
- 下一篇:java實現的語法分析程序
評論
共有 條評論