棧的順序儲存結構實現。

2021-08-19 15:25:18 字數 1923 閱讀 7713

#ifndef __stack_h_

#define __stack_h_

#define size 5

typedef structstack;

//初始化棧的儲存區

void stack_init(stack *);

//清理棧的儲存區

void stack_deinit(stack *);

//判斷棧是不是滿了

int stack_full(const stack *);

//判斷棧是不是空的

int stack_empty(const stack *);

//獲得棧裡有效數字個數

int stack_size(const stack *);

//向棧放乙個數字

void stack_push(stack *, int);

//從棧獲得下乙個數字

int stack_pop(stack *);

//從棧裡獲得下乙個數字

int stack_top(const stack *);

#endif //__stack_h_

/* 順序物理結構棧演示

*/#include "stack.h"

//初始化棧的儲存區

void stack_init(stack *p_stack)

//清理棧的儲存區

void stack_deinit(stack *p_stack)

//判斷棧是不是滿了

int stack_full(const stack *p_stack)

//判斷棧是不是空的

int stack_empty(const stack *p_stack)

//獲得棧裡有效數字個數

int stack_size(const stack *p_stack)

//向棧放乙個數字

void stack_push(stack *p_stack, int num)

//從棧獲得下乙個數字

int stack_pop(stack *p_stack)

//從棧裡獲得下乙個數字

int stack_top(const stack *p_stack)

/* 棧測試

*/#include "stdio.h"

#include "stack.h"

int main()

; stack_init(&stk);

stack_push(&stk,1);

stack_push(&stk,3);

stack_push(&stk,5);

stack_push(&stk,7);

stack_push(&stk,25);

printf("數字個數是:%d\n",stack_size(&stk));

printf("判斷滿的結果是:%d\n",stack_full(&stk));

stack_top(&stk);

printf("top結果是:%d\n",stack_top(&stk));

printf("top結果是:%d\n",stack_top(&stk));

printf("pop結果是:%d\n",stack_pop(&stk));

printf("pop結果是:%d\n",stack_pop(&stk));

printf("pop結果是:%d\n",stack_pop(&stk));

printf("pop結果是:%d\n",stack_pop(&stk));

printf("pop結果是:%d\n",stack_pop(&stk));

printf("判斷空的結果是%d\n",stack_empty(&stk));

stack_deinit(&stk);

return 0;

}

棧的順序儲存結構實現(四)

18.11.17 棧是一種只限定在表尾進行插入和刪除的線性表,這裡的表尾指的是棧頂,而不是棧尾,所以棧又被稱為先進後出的線性表,也就是說棧是乙個類似於木桶之類存在,先放進去的後拿出來 我們通常用乙個變數top來標誌棧頂元素的變化,若棧的長度為stacksize,那麼top的值就必須小於stacksi...

棧的順序儲存結構及實現

棧是線性表的特例,棧只在棧頂進行插入及刪除操作,因此資料是後進先出。棧的順序儲存其實也是線性表順序儲存的簡化。棧的結構定義如下 進棧操作push,其 如下 插入元素e為新的棧頂元素 stauts push sqstack s,selemtype e s top 棧頂指標 1 s data s top...

棧的順序儲存結構

標頭檔案 函式的宣告 include include include define stacksize 100 typedef int elemtype typedef struct seqstack void initstack seqstack s 初始化棧 int stackempty seq...