資料結構之棧的基本操作

2021-06-29 06:36:17 字數 1567 閱讀 9185

棧的結構型別,和基本操作如下:

typedef struct*stack,st;

void initstack(stack *s); //初始化棧

void destroystack(stack *s); //銷毀棧

void push(stack st,_type e); //插入元素

_type pop(stack st); //彈出棧頂元素

_type gettop(stack st); //獲得棧頂元素,並不刪除

int length(stack st); //返回棧的元素個數

int isempty(stack st); //是否為空,c語言中沒有bool型別

全部**如下:

#include "stdio.h"

#include "stdlib.h"

#define _type int //棧的資料型別,不能加逗號,不然會出錯

#define stack_size 100 //棧的大小

#define add_size 10 //不夠時的增量

#define endflag -999 //出錯時返回的標誌

/* *棧的實現

*/typedef struct*stack,st;

void initstack(stack *s); //初始化棧

void destroystack(stack *s); //銷毀棧

void push(stack st,_type e); //插入元素

_type pop(stack st); //彈出棧頂元素

_type gettop(stack st); //獲得棧頂元素,並不刪除

int length(stack st); //返回棧的元素個數

int isempty(stack st); //是否為空,c語言中沒有bool型別

void initstack(stack *s)

(*s)->top = (*s)->base;

(*s)->size = stack_size;

}void destroystack(stack *s)

free((*s)->base);

free(*s);

}void push(stack st,_type e)

if(!st->base)

*st->top++ = e; //equels to *st->top = e; st->top++;

}_type pop(stack st)

_type gettop(stack st)

int isempty(stack st)

int length(stack st)

int main()

printf("top is %d,length is %d \n",gettop(st),length(st));

while((e=pop(st)) != endflag)

printf("\n");

destroystack(&st);

}

資料結構之棧及其基本操作

棧的順序儲存表示 include include include using namespace std define stack int size 100 define stackincrement 10 typedef struct sqstack 構造乙個空棧 在定義了棧的基本結構後,按照設定...

資料結構實驗之棧八 棧的基本操作

time limit 1000ms memory limit 65536k 有疑問?點這裡 堆疊是一種基本的資料結構。堆疊具有兩種基本操作方式,push 和 pop。push乙個值會將其壓入棧頂,而 pop 則會將棧頂的值彈出。現在我們就來驗證一下堆疊的使用。首先輸入整數t 1 t 10 代表測試的...

資料結構實驗之棧八 棧的基本操作

資料結構實驗之棧八 棧的基本操作 time limit 1000ms memory limit 65536k 堆疊是一種基本的資料結構。堆疊具有兩種基本操作方式,push和pop。push乙個值會將其壓入棧頂,而pop則會將棧頂的值彈出。現在我們就來驗證一下堆疊的使用。首先輸入整數t 1 t 10 ...