顺序栈的实现

来源:互联网 发布:网络统考app 编辑:程序博客网 时间:2024/06/14 11:10
#include<stdio.h>#include<malloc.h>#define maxsize 100typedef int dataType;typedef struct{dataType data[maxsize];int top; }Seqstack;//创建顺序栈Seqstack *CreateStack(){Seqstack *t = (Seqstack*)malloc(sizeof(Seqstack));t->top = -1;  //初始化一个空的顺序栈 return t;} //判断栈是否为空int Empty(Seqstack *s){return s->top == -1;} //判断栈是否满int Full(Seqstack *s){return s->top == maxsize - 1;}//元素x进栈void push(Seqstack *s,dataType x){if(Full(s)) exit(1);s->data[++s->top] = x;} //出栈 void pop(Seqstack *s){if(Empty(s)) exit(1);s->top--;}//取栈顶元素dataType top(Seqstack *s){if(Empty(s)) exit(1);return s->data[s->top];}//求栈的个数int size(Seqstack *s){return s->top + 1;} int main(){Seqstack *s = CreateStack();push(s,80);push(s,90);pop(s);printf("栈有%d个元素,栈顶元素为:%d\n",size(s),top(s));}
实验结果如下:


原创粉丝点击