棧的簡單實現(三)

2021-06-14 20:51:33 字數 2510 閱讀 5925

繼上文棧的簡單實現(一)和棧的簡單實現(二)實現了順序結構的棧後,本文為簡單實現鏈式棧結構。

**如下:

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...