当前仓库属于关闭状态,部分功能使用受限,详情请查阅 仓库状态说明
1 Star 0 Fork 0

UnbalancedCat/十进制整数复数计算器
关闭

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
Stack.h 2.13 KB
一键复制 编辑 原始数据 按行查看 历史
UnbalancedCat 提交于 2021-12-21 01:00 . 新增历史记录功能
#pragma once
#define _CRT_SECURE_NO_WARNINGS
#include "Common.h"
#define STACK_INIT_SIZE 100//定义栈的初始长度
#define STACKINCREMENT 10 //定义栈每次追加分配的长度
//实现栈的数据类型
typedef struct
{
SElemType* elem;
int top;
int stacksize;
}Stack;
//栈的各项操作的实现
Status InitStack(Stack& s)
{
//初始化栈
s.elem = new SElemType[STACK_INIT_SIZE];
if (!s.elem) return OVERFLOW;
s.top = -1;
s.stacksize = STACK_INIT_SIZE;
return OK;
}
Status DestroyStack(Stack& s)
{
//销毁栈
delete s.elem;
s.top = -1; s.stacksize = 0;
return OK;
}
Status ClearStack(Stack& s)
{
//当栈存在时将栈清空
//当栈不存在时返回出错信息
if (!s.elem) return ERROR;
s.top = -1;
return OK;
}
Status StackEmpty(Stack& s)
{
//判断栈空与否,空时返回TRUE,否则返回ERROR.
//当栈不存在时返回出错信息
if (!s.elem) return ERROR;
if (s.top < 0) return TRUE;
return FALSE;
}
int StackLength(Stack s)
{
//返回栈的长度
//当栈不存在时返回出错信息
if (!s.elem) return ERROR;
return s.top + 1;
}
Status GetTop(Stack s, SElemType& e)
{
//当栈存在且不空时返回栈顶元素
//当栈不存在或栈空时返回出错信息
if (!s.elem) return ERROR;
if (s.top < 0) return ERROR;
e = s.elem[s.top];
return OK;
}
Status Push(Stack& s, SElemType e)
{
//当栈存在时压栈
//当栈不存在时返回出错信息
if (!s.elem) return ERROR;
if ((s.top + 1) == s.stacksize) { //当栈的初始空间已满
SElemType* temp = s.elem; int i; //为栈重新分配存储空间
s.stacksize += STACKINCREMENT;
s.elem = new SElemType[s.stacksize];
if (!s.elem) return OVERFLOW; //当分配失败时返回出错信息
for (i = 0; i <= s.top; i++) s.elem[i] = temp[i];
delete temp;
}// if
s.top += 1;
s.elem[s.top] = e;
return OK;
}
Status Pop(Stack& s, SElemType& e)
{
//当栈存在且不空时退栈
//当栈不存在或栈空时返回出错信息
if (!s.elem) return ERROR;
if (s.top < 0) return ERROR;
e = s.elem[s.top];
s.top -= 1;
return OK;
}
Status StackTraverse(Stack s, int (*visit)(SElemType& e))
{
//当栈存在且不空时调用visit函数对栈作由底到头的遍历
//当visit函数调用失败返回错误信息
//当栈不存在或栈空时返回出错信息
int i;
if (!s.elem) return ERROR;
if (s.top < 0) return ERROR;
for (i = 0; i <= s.top; i++) visit(s.elem[i]);
return OK;
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C++
1
https://gitee.com/UnbalancedCat/data-structure-course-design.git
git@gitee.com:UnbalancedCat/data-structure-course-design.git
UnbalancedCat
data-structure-course-design
十进制整数复数计算器
master

搜索帮助

0d507c66 1850385 C8b1a773 1850385