資料結構 棧的概念及實現

2021-10-06 00:21:50 字數 1381 閱讀 2503

棧的概念及結構

:一種特殊的線性表,其只允許在固定的一端進行插入和刪除元素操作。進行資料插入和刪除操作的一端稱為棧頂,另一端稱為棧底。棧中的資料元素遵守後進先出lifo(last in first out)的原則。

壓棧:棧的插入操作叫做進棧/壓棧/入棧,入資料在棧頂

出棧:棧的刪除操作叫做出棧。出資料也在棧頂

棧的實現

typedef

int stdatatype;

#define n 10

#include

#include

#include

typedef

struct stack

stack;

// 支援動態增長的棧

typedef

int stdatatype;

typedef

struct stack

stack;

/*函式功能:棧的初始化

*/void

stackinit

(stack* pst)

/*函式功能:棧的銷毀

*/void

stackdestroy

(stack* pst)

/*函式功能:入棧

*/void

stackpush

(stack* pst, stdatatype date)

pst-

>_a[pst-

>_top]

= date;

pst-

>_top++;}

/*函式功能:出棧

*/void

stackpop

(stack* pst)

/*函式功能:獲取棧的頂端資料

*/stdatatype stacktop

(stack* pst)

/*函式功能:獲取目前的總資料量

*/size_t stacksize

(stack* pst)

/*函式功能:判斷棧是否為空,返回1為空

*/int

stackempty

(stack* pst)

這裡附上測試函式以供讀者自行測評

#include

"stack.h"

void

text()

}int

main()

資料結構庫 順序棧的概念及實現

1,棧的定義 1,棧是一種特殊的線性表 1,棧頂 top 允許操作的一端 2,棧底 bottom 不允許操作的一端 2,棧的特性 1,後進先出 last in first out 只有乙個特性 3,棧的操作 創銷進出頂大清 1,建立棧 stack 2,銷毀棧 stack 3,進棧 push 4,出棧...

C 資料結構第35課 棧的概念及實現(下)

1 staticstack 的缺陷 模板型別為類型別時,staticstack 的物件在建立時,會多次呼叫元素型別的建構函式,便會極大的影響效率。為什麼會這樣輸出這樣的結果?我們建立了 stack 物件,呼叫了 staticstack的建構函式,並且成員變數是這樣的寫的 protected t m ...

資料結構的基本概念及佇列與棧的基本實現

一資料結構的基本概念 1 hash表 dict底層結構使用的雜湊表 為了支援快速查詢使用了雜湊表作為底層結構,雜湊表的實現原理,底層其實就是乙個陣列 雜湊表平均查詢時間複雜度o 1 cpython直譯器使用二次探查解決雜湊衝突問題 list與tuple的區別 都是線性結構,支援下標訪問 list沒法...