当前位置:文档之家› 数据结构实验报告 顺序栈

数据结构实验报告 顺序栈

《数据结构与算法》实验报告
一、实验内容
1.栈的实现
2.顺序栈的基本操作
二、实验目的及要求
熟悉栈的基本操作在顺序栈的实现。

通过具体应用实例在复习高级编程语言使用方法的基础上初步了解数据结构的应用。

三、设计分析与算法描述
顺序栈的存储结构:
typedef struct
{
int elem[Stack_Size];
int top;
}SeqStack;
void InitStack(SeqStack *S)//构造一个空栈(初始化)
int Push(SeqStack *S,int x)//进栈
int Pop(SeqStack *S,int *x)//出栈
int IsEmpty(SeqStack *S)//判栈是否空
int IsFull(SeqStack *S)//判栈是否满
int GetTop(SeqStack *S,int *x)//读栈顶
四、附件:带注释的源程序
#include"iostream.h"
#define Stack_Size 50
#define false 0
#define true 1
typedef struct
{
int elem[Stack_Size];
int top;
}SeqStack;
void InitStack(SeqStack *S)//构造一个空栈(初始化) {
S->top=-1;
}
int Push(SeqStack *S,int x)//进栈
{
if(S->top==Stack_Size-1)//栈已满
return (false);
S->top++;
S->elem[S->top]=x;
return (true);
}
int Pop(SeqStack *S,int *x)//出栈
{
if(S->top==-1)//栈已空
return (false);
else
{
*x=S->elem[S->top];
S->top--;
return (true);
}
}
int IsEmpty(SeqStack *S)//判栈是否空{
if(S->top==-1)
return (true);
else
return (false);
}
int IsFull(SeqStack *S)//判栈是否满{
if(S->top==Stack_Size-1)
return (true);
else
return (false);
}
int GetTop(SeqStack *S,int *x)//读栈顶{
if(S->top==-1)
return (false);
else
{
*x=S->elem[S->top];
return (true);
}
}
int main()
{
int i,temp;
SeqStack st;
InitStack(&st);
for(i=0;i<10;i++)
Push(&st,i);
while(IsEmpty(&st))
{
Pop(&st,&temp);
cout<<temp<<endl;
}
return 0;
}。

相关主题