棧的概念及結構
棧:一種特殊的線性表,其只允許在固定的一端進行插入和刪除元素操作。進行資料插入和刪除操作的一端稱為棧頂,另一端稱為棧底。棧中的資料元素遵守後進先出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沒法...