繼上文棧的簡單實現(一)和棧的簡單實現(二)實現了順序結構的棧後,本文為簡單實現鏈式棧結構。
**如下:
package ds.stack;
import ds.linkedlist.linkedlist;
/** * 簡單鏈式棧結構
* * @author abyss_cmg
* * @param */
public class stack3
/*** 獲取棧中已存放資料的長度
* * @param stack
* 棧的物件引用
* @return 獲取棧中已存放資料的長度
*/int getsize(stack3stack)
/*** 判斷是否空棧
* * @param stack
* 棧的物件引用
* @return 若空棧則返回true,否則返回false
*/boolean isempty(stack3stack)
/*** 清空棧,但不釋放記憶體
* * @param stack
* 棧的物件引用
*/void clear(stack3stack)
/*** 釋放棧的記憶體空間
* * @param stack
* 棧的物件引用
*/void free(stack3stack) else
clear(stack);
} /**
* 入棧操作
* * @param stack
* 棧的物件引用
* @param edata
* 要壓入棧的資料
*/void push(stack3stack, e edata)
/*** 將棧頂彈出
* * @param stack
* 棧的物件引用
* @return 彈出棧頂資料
*/e pop(stack3stack)
e datatmp = stack.objdata.getheadinfo(stack.head);
stack.head = stack.objdata.delete(head, datatmp);
stack.nlen--;
return datatmp;
} /**
* 讀取棧頂資料(不彈出)
* * @param stack
* 棧的物件引用
* @return 返回棧頂元素
*/e peek(stack3stack)
e datatmp = stack.objdata.getheadinfo(stack.head);
system.out.println(datatmp + "已讀取");
return datatmp;
}}
測試**:
package ds.stack;
public class ******3
system.out.println("棧的現有長度:" + stack.getsize(stack));
system.out.println("----測試讀取棧頂操作----");
stack.peek(stack);
system.out.println("----測試出棧操作----");
for (int i = 1; i <= 7; i++)
}}
測試結果:
----新建空棧----
棧的現有長度:0
----測試入棧操作----
將test1壓入棧
test1已讀取
test1已入棧
將test2壓入棧
test2已讀取
test2已入棧
將test3壓入棧
test3已讀取
test3已入棧
將test4壓入棧
test4已讀取
test4已入棧
將test5壓入棧
test5已讀取
test5已入棧
將test6壓入棧
test6已讀取
test6已入棧
棧的現有長度:6
----測試讀取棧頂操作----
test6已讀取
----測試出棧操作----
棧的現有長度:6
test6
棧的現有長度:5
test5
棧的現有長度:4
test4
棧的現有長度:3
test3
棧的現有長度:2
test2
棧的現有長度:1
test1
棧的現有長度:0
棧已空,無法出棧
null
棧的簡單實現
設棧採用順序儲存結構 用動態陣列 請編寫棧的各種基本操作的實現函式 棧的動態陣列順序儲存結構可定義如下 struct stack 棧的基本操作可包括 void initstack stack s 構造乙個空棧 s int emptystack stack s 若棧s 為空棧返回 1,否則返回0 vo...
棧的簡單實現
棧的描述 線性結構,有序列表,先進後出 陣列實現棧 思路 記錄一下棧頂元素的索引,加入新元素時索引 索引位置對應的值設為新元素,直到棧滿,取出元素後,索引 直到小於0,棧空 鍊錶實現棧 public class arraystack 棧滿 return public boolean isfull 是...
棧的簡單實現(順序棧 鏈棧)
include define maxsize 100 define true 1 define false 0 define ok 1 define error 0 define infeasible 1 define overflow 2 using namespace std typedef i...