《数据结构》实验三:栈和队列实验

《数据结构》实验三:栈和队列实验

一..实验目的

     巩固栈和队列数据结构,学会运用栈和队列。

1.回顾栈和队列的逻辑结构和受限操作特点,栈和队列的物理存储结构和常见操作。

2.学习运用栈和队列的知识来解决实际问题。

3.进一步巩固程序调试方法。

4.进一步巩固模板程序设计。

二.实验时间

   准备时间为第5周到第6周,具体集中实验时间为6周第2次课。2个学时。

三..实验内容

1.自己选择顺序或链式存储结构,定义一个空栈类,并定义入栈、出栈、取栈元素基本操作。然后在主程序中对给定的N个数据进行验证,输出各个操作结果。


源代码:

<span style="font-size:14px;">Seqstack.h:
#ifndef Seqstack_H
#define Seqstack_H
const int N = 10;
class Seqstack
{
private:
int top;
int data[N];
public:
Seqstack();
~Seqstack(){};
void push(int x);  //入栈
int pop();  //出栈
int GetTop(); //取栈顶元素
int Empty();  //判空
};
#endif

函数定义文件Seqstack_func.cpp:
#include<iostream>
#include"Seqstack.h"
using namespace std;
Seqstack::Seqstack()
{
top = -1;
}
void Seqstack::push(int x)
{
if (top == N - 1) throw "overflow";
data[++top] = x;
}
int Seqstack::pop()
{
int x;
if (top == -1) throw "underflow";
x = data[top--];
return x;
}
int Seqstack::Empty()
{
if (top == -1)
{
return 1;
}
else return 0;
}
int Seqstack::GetTop()
{
if (top != -1)
return data[top];
}

主程序文件Seqstack_main.cpp:
#include<iostream>
#include<cstdlib>
#include"Seqstack.h"
using namespace std;
int main()
{
int x,y;
Seqstack S;
if (S.Empty())
{
cout << "这是空栈!" << endl;
}
else cout << "这不是空栈!" << endl;
system("pause");
cout << "分别输入两个入栈的数据:" << endl;
cout << "输入第一个数:"; cin >> x; cout << endl;
cout << "输入第二个数:"; cin >> y;
S.push(x); S.push(y);
system("pause");
cout << "栈顶元素为:" << S.GetTop() << endl;
system("pause");
cout << "执行一次出栈操作:" << endl;
S.pop();
cout << "操作后栈顶元素为:" << S.GetTop() << endl;
system("pause");
return 0;
}</span>

运行结果:




  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值