棧的基礎知識

2021-07-25 07:06:21 字數 909 閱讀 4241

棧是限定在表尾進行插入和刪除操作的線性表;

佇列是只允許在一端進行插入操作,而在另一端進行刪除操作的線性表。

把允許插入和刪除的一端稱為棧頂(

top),

另一端稱為棧底(

bottom

),不含任何資料元素的棧稱為空棧。棧又稱為後進先出的線性表。

lifo。

棧的插入操作,叫做進棧,也稱為壓棧,入棧。子彈入彈夾;

棧的刪除操作,叫做出棧,也有的叫做彈棧。

棧的抽象資料型別

initstack(*s):

初始化操作,建立個空棧s;

destroystack(*s):

若棧存在,則銷毀它;

clearstack(*s

):將棧清空;

stackempty(s

)若棧為空,則返回

true

,否則返回

false。

gettop

(s,*e

):若棧存在且非空,用e返回

s的棧頂元素。

push(*s

,e):

若棧s存在,插入新元素e到棧

s中並成為棧頂元素。

pop(*s

,*e)

:刪除棧

s中棧頂元素,並用

e返回其值。

stacklength(s

):返回棧

s的元素個數。

/*stack

結構*/

typedef intselemtype;

typedef struct

sqstack;

基礎知識 棧

特點 後進先出 類似於乙個桶.結構定義 棧頂初始化為 1 int data 資料區 int max size,top index 棧頂指標下標入棧 棧頂指標向上移動一位出棧 棧頂指標向下移動一位表示式求值兩個棧,乙個裝數,乙個裝符號.用isdigit 函式分辨他是否為數字0 9 返回值 是 1 否 ...

棧的基礎知識

棧 stack 是一種特殊的線性表,其包括順序棧 seqstack 和鏈式棧 linkedstack 棧的基本操作包括建立棧 判斷棧是否為空 isempty 入棧 push 出棧 pop 和取棧頂元素 get 等,其實現的介面如下所示 public inte ce sstack 1 順序棧 seqs...

堆與棧的基礎知識

一 預備知識 程式的記憶體分配 乙個由c c 編譯的程式占用的記憶體分為以下幾個部分 1 棧區 stack 由編譯器自動分配釋放 存放函式的引數值,區域性變數的值等。其操作方式類似於資料結構中的棧。2 堆區 heap 一般由程式設計師分配釋放,若程式設計師不釋放,程式結束時可能由os 注意它與資料結...