数据结构实验-栈和队列的定义和应用
实验内容:
计算用户输入的简单表达式的值:
例如(5+2)*3。即输入的表达式中数字为一位整数即可。
代码:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
typedef struct
{
char *base;//申请一个空间
char *top;//栈顶元素下一个
int size;//容量
}SStack;//栈
int InitStack(SStack &S1)
{
S1.base=(char *)malloc(100*sizeof(char));
if(!S1.base) return 0;
S1.top=S1.base;
S1.size=100;
return 1;
}///建立一个栈
int Push(SStack &S1, char e)
{
if(S1.top-S1.base==S1.size) return 0;
*S1.top=e;
S1.top++;
return 1;
}///栈进元素
int StackEmpty(SStack S1)
{
if(S1.base==S1.top) return 1;
}///数字栈判断是否空
int Pop(SStack &S1, char &e)
{
if(StackEmpty(S1)) return 0;
e=*(S1.top-1);