棧的順序儲存結構和操作實現 陣列實現

2021-06-25 08:54:03 字數 1140 閱讀 3877

今天學習了一下棧,順便自己敲**實現棧的功能,本次是陣列實現的。話不多說,看源**:

定義介面:

package com.guobing.stack;

@suppresswarnings("hiding")

public inte***ce stack_inte***ce

實現介面:

package com.guobing.stack;

public class arraystack implements stack_inte***ce

/*** 初始化棧

*/@override

public void initstack()

/*** 判斷棧是否為空

*/@override

public boolean isempty()

/*** 返回棧頂元素的值

*/@override

public object peek()

/*** 從棧中刪除棧頂元素並返回

*/@override

public object pop()

/*** 用陣列實現棧,其實很簡單;top就是陣列的最後一位

* 所有的操作都是對top的操作,所以雖然有棧底指標,但是沒有用到,可以不申明

* 向棧頂壓入資料時的分析:

* 陣列的長度是固定的。所以當棧空間已經滿時,重新申請空間,並把資料複製過去

*/@override

public void push(object obj)

} top ++;

stackarray[top] = obj;

} /**

* 列印棧中的資料

*/@override

public void print()

for(int i=top; i>=0; i--)

} //測試

public static void main(string args)

}

測試結果:

棧頂元素的值是:ccb

a刪除棧頂元素後:

棧頂元素的值是:bba

棧為空

棧的順序儲存(陣列實現)

棧是只允許一一端進行操作的的線性表,首先強調的是棧是一種線性表,其次棧只限定在一端進行操作。initstack 初始化棧 stackempty 判斷棧空 push 進棧 pop 出棧 gettop 獲取棧頂元素 destorystack 銷毀棧 初始化typedef struct sqstack 初...

棧的順序儲存結構實現。

ifndef stack h define stack h define size 5 typedef structstack 初始化棧的儲存區 void stack init stack 清理棧的儲存區 void stack deinit stack 判斷棧是不是滿了 int stack full...

棧的順序儲存結構與操作

include using namespace std struct infor template class test template test test template test test template void test getintostack char sztemp cin szt...