前天看到有人给我很久之前写的一篇博客《C语言::将中缀表达式转换为后缀表达式并计算结果》指出了一个BUG.
今天闲的没事,就把BUG修复一下,一看那代码写的,不忍直视,那个BUG更是让我啼笑皆非...
这就是传说中的成长吧!看过去的自己总觉得像个傻逼
-----------------------------------------------------------------------
本次程序升级说明:
1.修复了将除法计算为减法的BUG.
2.修复了一些内存泄漏的情况
3.对代码进行了分文件实现
4.将使用的库函数声明在了头文件里,降低编译依存性.(最近才学的,对这块还有些迷糊,不知道这样做对不对)
集成开发环境:vs 2010
-------------------------------------------------------------------------
代码如下:
Stack.h //栈的声明
#ifndef __STACK_H__
#define __STACK_H__
#define ElemType int
/栈的结构
typedef struct Stack{
ElemType * base;
ElemType * top;
int stacksize;
}SqStack;
用到库函数的声明
//单独声明,为了降低编译依存性
#define NULL 0;
void exit(int);
void *malloc(unsigned);
void *realloc(void *,unsigned);
void free(void *);
/
//初始化一个栈
int CreateStack(SqStack * S);
//获得栈顶元素
ElemType GetTop(SqStack * S);
//压栈
int Push(SqStack * S,ElemType e);
//弹出
int Pop(SqStack * S,ElemType * e);
//销毁栈
void DestoryStack(SqStack * S);
#endif
Stack.c //栈的实现
#include"Stack.h"
/