ADT
来源:互联网 发布:网络品牌推广策划书 编辑:程序博客网 时间:2024/05/25 19:55
仅供参考,正确性有待检查(QAQ)
/ADT SqStack#include<iostream>#defineTRUE1#defineFALSE0#defineOK1#defineERROR0#defineOVERFLOW-1#defineINITLENGTH100#defineINCREASESIZE10using namespace std;typedef int SElemType;typedef int Status;typedef struct {SElemType *base;//栈底地址SElemType *top;//栈顶地址int stacksize;//栈容量}SqStack;//初始化空栈Status InitStack(SqStack &S) {S.base = (SElemType *)malloc(sizeof(SElemType) * INITLENGTH);if (!S.base)exit(OVERFLOW);S.top = S.base;S.stacksize = INITLENGTH;return OK;}//清空栈Status ClearStack(SqStack &S) {S.top = S.base;return OK;}//销毁栈Status DestroyStack(SqStack& S) {free(S.base);S.top = S.base = NULL;S.stacksize = 0;return OK;}//栈扩容void IncStackSize(SqStack &S) {S.base = (SElemType *)realloc(S.base, sizeof(SElemType)*(S.stacksize + INCREASESIZE));S.stacksize += INCREASESIZE;}//压栈Status Push(SqStack &S, SElemType e) {if (S.stacksize == S.top - S.base)IncStackSize(S);*(S.top++) = e;return OK;}//出栈Status Pop(SqStack &S, SElemType &e) {if (S.top == S.base) return ERROR;e = *(--S.top);return OK;}//判栈空Status IsEmpty(SqStack &S) {return S.top == S.base ? TRUE : FALSE;}//返回栈深int StackLength(SqStack &S) {return S.top - S.base;}//获取栈顶元素Status GetTop(SqStack &S, SElemType &e) {if (S.top == S.base)return ERROR;e = *(S.top - 1);return OK;}//栈元素遍历输出Status StackPrint(SqStack &S) {if (S.top == S.base)return ERROR;SElemType *curPtr;curPtr = S.base;while(curPtr < S.top) {if (curPtr == S.base)cout << *(curPtr);else cout << ' ' << *(curPtr);curPtr++;}cout << endl;return OK;}
阅读全文
0 0
- ADT
- adt
- ADT
- ADT
- ADT
- ADT
- ADT
- ADT
- ADT
- ADT
- ADT
- ADT
- ADT
- ADT
- 删除ADT,重新安装ADT
- 日志ADT
- ADT(链表)
- ADT 配置
- maven项目中读取.properties文件
- 解决同一activity下多个fragment 切换时重复执行onCreateView方法
- Java数据结构之散列表_动力节点Java学院整理
- chrome配置host
- SpringBoot发邮件-注意事项
- ADT
- 栈stack
- 段错误的解决办法
- 区块链落地中的九大问题与解法
- 使用java事件机制实现清理redis中临时数据
- MySQL通过python获取数据列表
- Android AIDL简单实现
- 读书笔记-设计模式-单例模式
- 关于Kylin结果缓存