用栈实现的逆波兰式(c++实现,但是我觉得还是用的面对过程的编程)

本文分享了一位女大学生的C++实现的银行管理系统源代码,介绍了如何插入代码片段、创建列表、表格,以及使用Markdown增强文章的表现力,包括SmartyPants、KaTeX数学公式、甘特图、UML图表和Flowchart流程图等功能。
摘要由CSDN通过智能技术生成

就是想要存下来代码源的卑微女大学生
c实现的银行管理系统

下附源代码

#include <iostream>
#include <string>
#include <windows.h>
#include <conio.h>
using namespace std;
#define TURE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
typedef int Status;

typedef struct
{
   
	char value;
}SElemType;

typedef struct
{
   
	SElemType *base;//在栈构造前和销毁后为NULL
	SElemType *top;//栈顶指针
	int stactsize;//当前已分配的元素存储空间
}Stack;

Status Init(Stack *S);//构造一个空栈S
Status Destory(Stack &S);//销毁一个栈S
Status Clear(Stack &S);//清空一个栈S
Status IsEmpty(Stack &S);//判断是否为空栈
char GetTop(Stack S);//用e返回S的栈顶元素
Status Push(Stack &S, char value);//插入e为新的栈顶元素,value赋值给e.value
Status Pop(Stack &S);//删除栈顶元素
Status prio(char c);//优先级排序
void Display(Stack &S);//逆序输出栈中的元素
int prio(char c);//优先级排序

//构造一个空栈S
Status Init(Stack &S)
{
   
	S.base = (SElemType*)malloc(STACK_INIT_SIZE * sizeof(SElemType));
	if (!S.base)//存储分配失败
		exit(OVERFLOW);
	S.top = S.base;
	S.stactsize = STACK_INIT_SIZE;
	return OK;
}

//销毁一个栈S
Status Destory(Stack &S)
{
   
	if (!S.base)
		return ERROR;
	while (S.base != S.top)
	{
   
		S.top--;
		free(S.top);
	}
	S.base = NULL;
	return OK;
}

//清空一个栈S
Status Clear(Stack &S)
{
   
	if (!S.base)
		return ERROR;
	while (S.base != S.top)
	{
   
		S.top--;
		free(S.top);
	}
	//S.stactsize = 0;
	return OK;
}

//判断是否为空栈
Status IsEmpty(Stack &S)
{
   
	if (!S.base)
		return ERROR;
	if (S.base == S.top)
		return TURE;
	else
		return FALSE;
}


//用e返回S的栈顶元素
char GetTop(Stack S)
{
   
	SElemType e;
	S.top--;
	e = *S.top
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值