当前位置:
文档之家› 王荣森(0908060386)数据结构实验报告(三)
王荣森(0908060386)数据结构实验报告(三)
void init_stack(seqstack *S);
bool stack_empty(seqstack *S);
bool stack_full(seqstack *S);
int stack_top(seqstack *S,int x);
bool push_stack(seqstack *S,int y);
cin>>y;
if(push_stack(S,y))
cout<<"\n入栈操作成功,其值为:"<<y;
else cout<<"\n入栈操作失栈,显示
if(pop_stack(S))
cout<<"\n弹栈成功!";
else cout<<"\n弹栈失败!";
{
cout<<"栈为空";
return x;
}
else
{
x=S->data[S->top];
return x;
}
}
bool push_stack(seqstack *S,int y)
{
if(stack_full(S))
{
cout<<"栈满";
return false;
}
else
{
S->top++;
S->data[S->top]=y;
}
cout<<"\n输入要进行的操作:1.取栈顶元素2.入栈3.弹栈0.结束";cin>>i;
}
}
//实现各子函数
void init_stack(seqstack *S)
{
S->top=-1;
}bool stack_empty(seqstack *S)
{
if(S->top==-1)return true;
数据结构实验报告
学院:计算机科学与信息学院专业:网络工程班级:网络092班
姓名
王荣森
学号
0908060386
实验组
实验时间
2011/11/18
指导教师
肖源源
成绩
实验项目名称
实验三:栈的实现
实验目的
1.掌握栈、思想及其存储实现。
2.掌握栈、常见算法的程序实现。
实验原理
1.根据实验内容编程,上机调试、得出正确的运行程序。
2.编译运行程序,观察运行情况和输出结果。
3.写出实验报告(包括源程序和运行结果)。
实验步骤及内容
#include <iostream.h>
#include <malloc.h>
#define maxsize 100
typedef struct
{
int data[maxsize];
int top;
}seqstack;
cin>>i;
while(i!=0)
{
if(i==1)
{//1.取栈顶元素,显示
x=stack_top(S,x);
if(x==0)
cout<<"\n取栈顶元素操作失败";
else cout<<"\n取栈顶元素操作成功,其值为:"<<x;
}
else if(i==2)
{//2.键盘输入一个整数,入栈
cout<<"\n输入入栈值:";
else return false;
}bool stack_full(seqstack *S)
{
if(S->top==maxsize-1)return true;
else return false;
}
int stack_top(seqstack *S,int x)
{
x=0;
if(stack_empty(S))
return true;
}
}
bool pop_stack(seqstack *S)
{
if(stack_empty(S))
{
cout<<"栈空";
return false;
}
else
{
S->top--;
return true;
}
}
实验结果及总结
1.重点理解栈、队列的算法思想,能够根据实际情况选择合适的存储结构。
2.注意算法6的各个函数之间值的传递情况。
3.注意写主函数时易出错。
4.栈的算法是后续实验的基础。
指导教师意见
年月日
bool pop_stack(seqstack *S);
void main()
{
int i,y,x=0;
seqstack *S=(seqstack *)malloc(sizeof(seqstack));
init_stack(S);
cout<<"\n输入要进行的操作:1.取栈顶元素2.入栈3.弹栈0.结束";