每天一个小程序(4)——顺序栈

来源:互联网 发布:苹果udid定制软件 编辑:程序博客网 时间:2024/05/01 07:21

顺序栈的结构体很简单,一个保存数据的数组和一个记录栈顶的整型值。

#include <stdio.h>#include <stdlib.h>#define MAXSIZE 100typedef int datatype;typedef struct {datatype data[MAXSIZE];int top;//栈顶}SeqStack;SeqStack* Init_SeqStack();int Empty_SeqStack(SeqStack* s);int Push_SeqStack(SeqStack* s,datatype x);int Pop_SeqStack(SeqStack* s,datatype *x);SeqStack* Init_SeqStack(){SeqStack *s;s = (SeqStack*)malloc(sizeof(SeqStack));s->top = -1;return s;}int Empty_SeqStack(SeqStack* s){if(s->top == -1)return 1;else return 0;}int Push_SeqStack(SeqStack* s,datatype x){if(s->top == MAXSIZE - 1)return 0;else{s->top++;s->data[s->top] = x;return 1;}}int Pop_SeqStack(SeqStack* s,datatype *x){if(Empty_SeqStack(s) == 1)return 0;else{*x = s->data[s->top];s->top--;return 1;}}void main(){int data = 0;SeqStack* s = Init_SeqStack();printf("入栈\n");scanf("%d",&data);while(data != -1){Push_SeqStack(s,data);scanf("%d",&data);}printf("出栈\n");while(Pop_SeqStack(s,&data)){printf("%d ",data);}}


0 0
原创粉丝点击