顺序栈的实现
来源:互联网 发布:触摸屏查询机软件 编辑:程序博客网 时间:2024/06/03 17:09
#include<stdio.h>#include<stdlib.h>#define STACK_INIT_SIZE 10#define STACKINCREASE 10#define OK 1#define ERROR 0typedef int ElemType;typedef int Status;typedef struct{ElemType* base;ElemType* top;int InitSize;}SuqStack;Status InitStack(SuqStack* s){s->base = (ElemType *)malloc(sizeof(ElemType)*STACK_INIT_SIZE);if(!s->base)return ERROR;s->top = s->base;s->InitSize = STACK_INIT_SIZE;return OK;}Status ClearStack(SuqStack* s){s->top = s->base;return OK;}Status DestroyStack(SuqStack* s){int i;for(i = 1; i < s->InitSize; i++){free(s->base);s->base++;}s->base = s->top = NULL;s->InitSize = 0;return OK;}Status Pop(SuqStack* s, ElemType* result){if(s->base == s->top)return ERROR;*result = *(--(s->top));return OK;}Status Push(SuqStack* s,ElemType value){if(s->top - s->base == s->InitSize){s->base = (ElemType* )realloc(s->base,sizeof(ElemType) * (s->InitSize + STACKINCREASE));if(!s->base)return ERROR;s->top = s->base + STACK_INIT_SIZE;s->InitSize = STACKINCREASE + STACK_INIT_SIZE;printf("has a overflow");}*(s->top) = value;(s->top)++;return OK;}//testStatus CreateStack(SuqStack* s,int size){int i;for(i = 1; i <= size; i++){printf("please enter the element%d: ",i);scanf("%d",(s->top));//printf("%d\n",*(s->top));(s->top)++;//printf("%d\n",s->top);}return OK;}Status ShowStack_FromTop(SuqStack s){printf("\n");while(s.top != s.base){(s.top)--;printf("%d ",*(s.top));}printf("\n");return OK;}int main(){SuqStack s;InitStack(&s);//CreateStack(&s,5);Push(&s,3);Push(&s,5);Push(&s,4);Push(&s,1);Push(&s,97);Push(&s,423);ShowStack_FromTop(s);int r;Pop(&s,&r);printf("Pop is %d! ",r);Pop(&s,&r);printf("Pop is %d! ",r);Pop(&s,&r);printf("Pop is %d! ",r);ShowStack_FromTop(s);return 0;}
0 0
- 栈的顺序实现
- 顺序栈的实现
- 顺序栈的实现
- 顺序栈的实现
- 顺序栈的实现
- 顺序栈的实现
- 顺序栈的实现
- 顺序栈的实现。。。。
- 顺序栈的实现
- 顺序栈的实现
- 顺序栈的实现
- 顺序栈的实现
- 顺序栈的实现
- 顺序栈的实现
- 顺序栈的实现
- 顺序栈的实现
- 顺序栈的实现
- 顺序栈的实现
- Mars《Android开发视频教程》
- AWK 简明教程
- 键盘通知的类型
- Java各种容器比较 (图例)
- android 自定义坐标曲线图
- 顺序栈的实现
- JavaFX ScrollPane滚动到指定位置
- javascript创建数组
- python使用过程中遇到的各种奇怪的问题
- sgu 132 Another Chocolate Maniac
- 通知实例
- 类,构造方法,成员方法等经常用到的修饰符的访问权限问题
- 自动导入参考文献,用Endnote插参考文献进word,很方便
- 你值得拥有:25个Linux性能监控工具