C 資料結構之Stack(棧)

2022-04-03 19:28:43 字數 1056 閱讀 8112

stack,棧,是好比堆積木似的資料結構,從上之下堆積,取出時按「lifo」-last int first out後進先出的規則。棧一般為執行緒所獨有,也就是每個執行緒有其自有的棧,與heap堆一般為共有的不同(heap為程序所用,stack為執行緒所用?)。

stack主要有四種操作:empty判斷棧是否為空;pop將棧頂的元素清除;top顯示棧頂的元素(不是取走);push壓棧,向棧內增加乙個元素。

**(在eclipse執行通過):

.h標頭檔案

#ifndef stack

#define stack

const int maxstack = 10;

enum error_code ;

typedef int stack_entry;

class stack

;#endif /* stack_ */

.cpp實現檔案

#include "stack.h"

stack::stack()

bool stack::empty()const

error_code stack::pop()

error_code stack::top(stack_entry &item)const

error_code stack::push(const stack_entry &item)

main主程式測試檔案:

#include "stack.h"

#include // or: #include "stdio.h"

//using

int main()

**中有一點重要的知識點,就是變數型別模板(不知道專業術語自己扯了這詞)stack_entry,這裡的變數型別相當於乙個模板,要能執行,必須先例項化這個模板,解決方法是用「typedef」(型別定義),比如:typedef char stack_entry,這裡就將stack_entry例項化為char變數型別。

python資料結構之棧(stack)

目錄 棧的定義 棧的基本操作 小練習棧遵循後進先出 last in first out 現實生活中也有不少這樣的例子,比如在學校食堂吃完飯時,你把盤子放到桌子上,疊起來之後,阿姨過來拿盤子出去洗,假如是手洗,那肯定是先從最上面的盤子開始拿來洗的,而最上面的盤子是最後放上去的,卻是第乙個 被拿出來的,...

資料結構 棧(Stack)

只允許在一端進行插入或刪除操作的線性表。首先,棧是一種線性表,但限定這種線性表只能在某一段進行插入和刪除操作。棧頂 top 線性表允許進行插入和刪除的一端。棧底 bottom 固定的,不允許進行插入和刪除的另一端。空棧 不含任何元素。如上圖 a1為棧底元素,an為棧頂元素。由於棧只能在棧頂進行插入和...

資料結構 棧stack

棧的概念與資料結構 棧 有時稱為 後進先出棧 是乙個元素的有序集合,其中新增移除新元素總發生在同一端。這一端通常稱為 頂部 與頂部對應的端稱為 底部 棧的底部很重要,因為在棧中靠近底部的元素是儲存時間最長的。最近新增的元素是最先會被移除的。這種排序原則有時被稱為 lifo,後進先出。它基於在集合內的...