ADT
来源:互联网 发布:spss数据输入教程 编辑:程序博客网 时间:2024/06/03 17:14
#include<iostream>#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define OVERFLOW -1#define INITLENGTH 100#define INCREASESIZE 10using 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, char 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 配置
- 图形用户界面
- Android的onCreateOptionsMenu()创建菜单Menu
- 各种焦点图轮播
- 一种分布式系统下的自增主键实现方法
- DOS、前后端交互、http、node基础
- ADT
- Redis的持久化
- c++八数码问题(广搜)
- centos7.2 redis主从,哨兵配置
- windows下两分钟搭建git服务器之gogs
- 上白泽慧音 解题报告
- Linux 系统中 hmmlearn 编程环境
- [视频处理]用java程序调用ffmpeg执行视频文件格式转换flv
- 运放参数——压摆率(SR)