加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 06:03:03 所属栏目:安全 来源:网络整理
导读:《数据结构》实验三:栈和队列实验 一..实验目的 巩固栈和队列数据结构,学会运用栈和队列。 1.回顾栈和队列的逻辑结构和受限操作特点,栈和队列的物理存储结构和常见操作。 2.学习运用栈和队列的知识来解决实际问题。 3.进一步巩固程序调试方法。 4.进一步

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

一..实验目的

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

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>

运行结果:



(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读