資料結構之棧

2021-07-03 22:22:45 字數 1239 閱讀 3544

4.8.2 四則運算表示式求值

程式如下所示:

#include

#include

#include

//定義結點型別

typedef struct node

node,*pnode;

//定義棧的抽象資料型別

typedef struct stack

stack,*pstack;

//函式宣告

//對棧進行初始化的函式

void init_stack(pstack list);

//入棧的函式

void push_stack(pstack list,int val);

//出棧的函式

bool pop_stack(pstack list,int *val);

//遍歷棧的函式

void tranverse_stack(pstack list);

//判斷棧是否為空

bool is_empty_stack(pstack list);

//清空棧的函式

void clear_stack(pstack list);

int main(void)

else

tranverse_stack(&s);

clear_stack(&s);

tranverse_stack(&s);

return 0;

}//對棧進行初始化的函式

void init_stack(pstack list)

else

}//入棧的函式

void push_stack(pstack list,int val)

else

return ;

}//判斷棧是否為空

bool is_empty_stack(pstack list)

else

}//遍歷棧的函式

void tranverse_stack(pstack list)

printf("\n");

return ;

}//出棧的函式

bool pop_stack(pstack list,int *val)

else

}//清空棧的函式

void clear_stack(pstack list)

else

//將棧頂和棧底指向同乙個指標域為空的結點

list->ptop = list->pbottom;}}

資料結構之棧結構

棧結構是一種filo first in last out 的批量資料儲存結構。其特點是先進後出,後來者居上 棧的基本屬性 棧記憶體 棧頂標記 棧的當前元素個數 萬金油屬性 size 棧的基本操作 萬金油的的操作 根據實現的不同將棧結構分為兩種 1.鏈式棧 2.陣列 利用有表頭鍊錶的頭插法來完成棧的功...

資料結構之棧

資料結構之棧 本文討論棧的陣列實現。棧需要有如下幾個屬性 棧的容量 capacity 棧頂指標 儲存棧元素的陣列 根據這幾個屬性可以定義乙個棧結構體 struct stackrecord 然後定義棧的操作,一般可以包含如下幾個 棧的建立 stack createstack int size 棧的銷毀...

資料結構之棧

決定採用何種方式來儲存資料是非常重要的,這樣便於檢索資料時,資料會自動按照某種規定的順序給出。棧是檢索資料的一種方式,它檢索元素的順序與儲存元素的順序相反。棧 先進後出。要把元素儲存到棧中,就 壓入 元素,要刪除棧中的元素,就 彈出 元素。有時候,可以通過檢查棧頂的元素 而不是實際去刪除它 來獲取元...