顺序栈的基本操作实现.pdf

上传人:tbuqq 文档编号:5100302 上传时间:2020-02-01 格式:PDF 页数:6 大小:60.53KB
返回 下载 相关 举报
顺序栈的基本操作实现.pdf_第1页
第1页 / 共6页
顺序栈的基本操作实现.pdf_第2页
第2页 / 共6页
顺序栈的基本操作实现.pdf_第3页
第3页 / 共6页
顺序栈的基本操作实现.pdf_第4页
第4页 / 共6页
顺序栈的基本操作实现.pdf_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《顺序栈的基本操作实现.pdf》由会员分享,可在线阅读,更多相关《顺序栈的基本操作实现.pdf(6页珍藏版)》请在三一文库上搜索。

1、顺序栈的基本操作实现 头文件 c3_1.h #include #include #include #define TRUE 1 #define FALSE 0 #define OVERFLOW 0 #define OK 1 #define ERROR 0 #define STACK_INIT_SIZE 10/存储空间初始化分配量 #define STACK_INCREMENT 2/存储空间分配增量 typedef int Status; typedef int SElemType; typedef struct SqStack SElemType *base; int *top;/ 栈底指针

2、int stacksize; SqStack; /函数声明 void InitStack(SqStack / 初始化 void DestoryStack(SqStack void ClearStack(SqStack Status StackEmpty(SqStack S);/判断栈是否为空 int StackLength(SqStack S);/返回栈的长度 Status GetTop(SqStack S,SElemType /用 e 返回栈顶元素 void Push(SqStack /向栈底插入元素 Status Pop(SqStack /出栈 void StackTraverse(SqS

3、tack S,void(*visit)(SElemType);/从栈底到 栈顶对栈 S 中每个元素调用函数visit() void print(SElemType e); / / 函数文件 bo3_1.cpp #include“c3_1.h“ void InitStack(SqStack if(!S.base) exit(OVERFLOW); S.top=S.base; S.stacksize=STACK_INIT_SIZE; void DestoryStack(SqStack / 释放栈 S.top=S.base=NULL; S.stacksize=0; void ClearStack(Sq

4、Stack Status StackEmpty(SqStack S) if(S.top=S.base) return TRUE; else return FALSE; int StackLength(SqStack S) return S.top-S.base; Status GetTop(SqStack S,SElemType return OK; else return ERROR; void Push(SqStack if(!S.base) exit(OVERFLOW); S.top=S.base+S.stacksize;/修改栈底指针 S.stacksize+=STACK_INCREM

5、ENT; *(S.top)+=e;/ 将 e 入栈,成为新的栈顶元素 Status Pop(SqStack e=*-S.top;/ 将栈底元素赋给e,栈顶指针下移 return OK; void StackTraverse(SqStack S,void(*visit)(SElemType) while(S.topS.base) visit(*S.base+); void print(SElemType e) printf(“%2d“,e); / / 主函数文件 main3_1.cpp #include #include“c3_1.h“ void main() int j; SqStack s;

6、 SElemType e,k; InitStack(s);/ 初始化 for(j=1;j=5;j+) Push(s,j); printf(“ 栈中元素为 :“); StackTraverse(s,print); k=StackEmpty(s); printf(“n 判断栈是否为空 :k=%d(1, 是;0否)“,k); Pop(s,e); printf(“n 弹出的栈顶元素为 :e=%dn“,e); GetTop(s,e);/ 将新的栈顶元素赋给e printf(“ 新栈顶元素为 e=%d, 栈的长度为 %dn“,e,StackLength(s); ClearStack(s); k=StackEmpty(s); printf(“n 再次判断栈是否为空 :k=%d(1, 是;0否)“,k); DestoryStack(s);/ 销毁栈 printf(“ 销毁栈后 s.top=%u,s.base=%u,s.stacksize=%dn“,s.top,s.base,s.stacksize);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1