首先先了解一下棧的特性:
棧:stack,又稱堆疊,它是運算受限的線性表,其限制是僅允許在表的一端進行插入和刪除操作,不允許在其他任何位置進行新增、查詢、刪除等操作。
簡單的說:採用該結構的集合,對元素的訪問有如下的特點:
1.先進後出(即,存進去的元素,要在後它後面的元素依次取出後,才能取出該元素)。例如,子彈壓進彈夾,先壓進去的子彈在下面,後壓進去的子彈在上面,當開槍時,先彈出上面的子彈,然後才能彈出下面的子彈。
2.棧的入口、出口的都是棧的頂端位置。
因為棧的操作會有異常的情況存在,所以自定義乙個異常,繼承於runtimeexception
/**
* 自定義當棧為空時進行操作時的異常
*/public class stackemptyexception extends runtimeexception
}
先定義乙個棧的功能介面,方便操作
/**
* 定義棧常用功能的介面
*/public inte***ce stack
運用陣列特性實現棧的順序儲存功能
/**
* 棧的順序儲存實現
*/public class stackarray implements stack
//輔助方法,當棧的容量不夠時進行擴容
public void escape()
//獲取元素個數
@override
public int getsize()
//入棧
@override
public void push(object obj)
//出棧
@override
public object pop() throws stackemptyexception
//取棧頂元素
@override
public object peek() throws stackemptyexception
//判斷棧是否為空
@override
public boolean isempty()
}
棧的順序儲存(陣列實現)
棧是只允許一一端進行操作的的線性表,首先強調的是棧是一種線性表,其次棧只限定在一端進行操作。initstack 初始化棧 stackempty 判斷棧空 push 進棧 pop 出棧 gettop 獲取棧頂元素 destorystack 銷毀棧 初始化typedef struct sqstack 初...
棧的順序儲存實現
首先要認識到viod p 2 表示的是兩個建立乙個包含兩個元素的陣列,每個元素是void 型別。即 void p 2 和這種寫法相同 void p0 void p1 採用份檔案的形式使用vs2013 c語言 編寫 ifndef seqstack h define seqstack h include...
棧的順序儲存結構和操作實現 陣列實現
今天學習了一下棧,順便自己敲 實現棧的功能,本次是陣列實現的。話不多說,看源 定義介面 package com.guobing.stack suppresswarnings hiding public inte ce stack inte ce實現介面 package com.guobing.sta...