棧
棧是限定在表尾進行插入和刪除操作的線性表;
佇列是只允許在一端進行插入操作,而在另一端進行刪除操作的線性表。
把允許插入和刪除的一端稱為棧頂(
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 注意它與資料結...