C語言描述棧的實現及操作(陣列實現)

2022-09-06 07:18:08 字數 1857 閱讀 5846

//

乙個堆疊模組介面

//命名為stack.h

#define stack_ytpe int //

堆疊所儲存值的型別

//push函式

//把乙個新值壓入棧中

void

push(stack_ytpe value);

//pop函式

//從堆疊中彈出乙個值

stack_ytpe pop(void

);

//top函式

//返回堆疊頂部元素的值

stack_ytpe top(void

);//

is_empty函式

//如果堆疊為空,返回true,否則返回false

bool is_empty(void

);//

is_full函式

//如果堆疊已滿,返回true,否則返回false

bool is_full(void);

#include#include

#include

"stack.h

"#define stack_size 100 //

堆疊中值數量的最大限制

static stack_type stack[stack_size]; //

儲存堆疊中值得陣列

static

int top_element = -1; //

指向頂部元素的指標

void

push(stack_type value)

stack_type pop(

void

)stack_type top(

void

)bool is_empty(void

)bool is_full(void

)

只需要最原來的stack.h介面基礎上加上新增以下兩個定義即可。

//

creat_stack函式

//建立堆疊。引數指定可以儲存多少元素

void

creat_stack(size_t size);

//destroy_stack函式

//銷毀堆疊。釋放堆疊所使用的記憶體

void destroy_stack(void);

//

乙個動態分配陣列實現的堆疊

#include

#include

#include

#include

#include

"stack.h"//

用於儲存堆疊元素的陣列和指向堆疊頂部元素的指標

static stack_type *stack;

static

size_t stack_size;

static

int top_element = -1;//

creat_stack

void

creat_stack(size_t size)

//destroy_stack

void destroy_stack(void

)void

push(stack_type value)

stack_type pop(

void

)stack_type top(

void

)bool is_empty(void

)bool is_full(void

)

參考文獻

《c和指標》

線性表的基本操作(陣列實現)

typedef intposition typedef struct lnode list struct lnode 初始化 list makeempty 查詢 define error 1 position find list l,elementtype x 插入 bool insert list...

迴圈佇列的建立及基本操作 資料結構 C語言

一 實驗目的 1 掌握佇列儲存結構的表示和實現方法。2 掌握佇列的入隊和出隊等基本操作的演算法實現。二 實驗題 建立順序迴圈佇列,並在順序迴圈佇列上實現入隊 出隊基本操作。三 實驗過程及結果 基本思路 建立順序迴圈佇列 定義乙個結構體,成員有三個 陣列 頭指標 用來表示陣列的下標,用於刪除元素,即出...

鍊錶的基礎操作(資料結構,C語言)

include include struct link void link init link head 鍊錶初始化 void link build link head 前插法輸入鍊錶 void link build2 link head 後插法輸入鍊錶 void link print link h...