顺序栈的c语言描述

上传人:wt****50 文档编号:40162149 上传时间:2018-05-24 格式:DOC 页数:3 大小:18.50KB
返回 下载 相关 举报
顺序栈的c语言描述_第1页
第1页 / 共3页
顺序栈的c语言描述_第2页
第2页 / 共3页
顺序栈的c语言描述_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《顺序栈的c语言描述》由会员分享,可在线阅读,更多相关《顺序栈的c语言描述(3页珍藏版)》请在金锄头文库上搜索。

1、#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 stack

2、size; / 当前已分配的存储空间,以元素为单位 ; / 顺序栈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 =

3、 * -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)pr

4、intf(“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“

5、); 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;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号