数据结构实验3_实验报告实验报告3
课程数据结构实验名称顺序栈基本操作第页
专业计算机科学与技术班级_计五__ 学号_105032010048 姓名廖江土
实验日期: 2010 年 9 月 28 日评分
一、实验目的
。
。
二、实验要求
"后进先出"的特性。
。
。
三、实验内容
,构造一个顺序栈,对其进行清空、销毁、入栈、出栈以及取栈顶元素操作。
,即验证某算术表达式的正确性,若正确,则计算该算术表达式的值。
主要功能描述如下:
(1)从键盘上输入表达式。
(2)分析该表达式是否合法:
a) 是数字,则判断该数字的合法性。若合法,则压入数据到堆栈中。
b) 是规定的运算符,则根据规则进行处理。在处理过程中,将计算该表达式的值。
c) 若是其它字符,则返回错误信息。
(3)若上述处理过程中没有发现错误,则认为该表达式合法,并打印处理结果。
四、实验步骤
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
#define OK 1
#define ERROR -1
#define TRUE 1
#define FALSE 0
#define OVERFLOW 0
typedef int Status;
typedef int SElemType;
#include<string>
#include<iostream>
using namespace std;
//
typedef struct{
SElemType *base;
SElemType *top;
int stacksize;
}SqStack;
Status InitStack(SqStack & S ) //构造一个顺序栈
{
=(SElemType *)malloc(STACK_INIT_SIZE * sizeof(SElemType));
if(!)
exit(OVERFLOW);
=;
=STACK_INIT_SIZE;
return OK;
}
Status ClearStack(SqStack &S) //清空、
{
if(!=)
{
=;
=0;
}
return OK;
}
Status DestroyStack(SqStack &S)//销毁、
{
free();
if()
return ERROR;
return OK;
}
Status Push(SqStack & S ,SElemType e) //入栈
{
if(->=){
=(SElemType *)realloc(
数据结构实验3 实验报告 来自淘豆网m.daumloan.com转载请标明出处.