陣列實現棧的順序儲存功能

2021-09-25 23:19:31 字數 1193 閱讀 5662

首先先了解一下棧的特性:

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