资源预览内容
第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
亲,该文档总共3页全部预览完了,如果喜欢就下载吧!
资源描述
#include #include #define OK 1 #define ERROR 0 #define STACK_INIT_SIZE 100 / 存储空间初始分配量 #define STACKINCREMENT 10 / 存储空间分配增量typedef int SElemType; / 定义栈元素类型 typedef int Status; / Status 是函数的类型,其值是函数结果状态代码,如 OK 等struct SqStack SElemType *base; / 在栈构造之前和销毁之后,base 的值为 NULLSElemType *top; / 栈顶指针int stacksize; / 当前已分配的存储空间,以元素为单位 ; / 顺序栈Status InitStack(SqStack if(!S.base) return (ERROR); S.top = S.base ; S.stacksize = STACK_INIT_SIZE; return OK; Status Push(SqStack if(!S.base )return ERROR; S.top = S.base + S.stacksize; S.stacksize += STACKINCREMENT; * S.top + = e; return OK; Status Pop(SqStack e = * -S.top; return OK; Status GetTop(SqStack S,SElemType e = *(S.top - 1); return OK; int StackLength(SqStack S) / 返回栈 S 的元素个数 / 请补全代码 return (S.top -S.base); Status StackTraverse(SqStack S) / 从栈顶到栈底依次输出栈中的每个元素 SElemType *p = (SElemType *)malloc(sizeof(SElemType); p = S.top; /请填空 if(S.top = S.base)printf(“The Stack is Empty!“); /请填空 else printf(“The Stack is: “); p-; while(p - S.base = 0) /请填空 printf(“%d “, *p); p-; /请填空 printf(“n“); return OK; int main() int a;SqStack S; SElemType x, e;if(InitStack(S) / 判断顺序表是否创建成功,请填空 printf(“顺序表创建成功.n“); while(1) printf(“1:进栈 n2:出栈 n3:读栈顶 n5:输出栈n0:退出n 请选择:n“); scanf(“%d“, switch(a) case 1: scanf(“%d“, if(!Push(S,x) printf(“进栈错误!n“); / 判断 Push 是否合法,请填空else printf(“%d 已经成功进栈!n“, x); break; case 2: if(!Pop(S,e) printf(“出栈错误!n“); / 判断 Pop 是否合法,请填空else printf(“%d 已经成功出栈!n“, e);break; case 3: if(!GetTop(S,e)printf(“读栈顶失败!n“); / 判断 Get Top 是否合法,请填空else printf(“栈顶元素是%d!n“, e);break; case 4: StackTraverse(S); /请填空break; case 0: return 1;
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号