实验3:栈和队列的基本操作实现及其应用——顺序栈和链栈
来源:互联网 发布:java 在类中定义接口 编辑:程序博客网 时间:2024/05/22 10:47
实验3:栈和队列的基本操作实现及其应用
一、实验目的
1、 熟练掌栈和队列的结构特点,掌握栈和队列的顺序存储和链式存储结构和实现。
2、 学会使用栈和队列解决实际问题。
二、实验内容
1、自己确定结点的具体数据类型和问题规模:
分别建立一个顺序栈和链栈,实现栈的压栈和出栈操作。
分别建立一个顺序队列和链队列,实现队列的入队和出队操作。
2、设计算法并写出代码,实现一个十将二进制转换成2进制数。
3、选做题(*)
设计一个模拟饭堂排队打饭管理软件,实现“先来先打饭”的排号叫号管理。
三、实验步骤
1、依据实验内容分别说明实验程序中用到的数据类型的定义;
2、相关操作的算法表达;
3、完整程序;
4、总结、运行结果和分析。
5、总体收获和不足,疑问等。
四、实验要求
1、 按照数据结构实验任务书,提前做好实验预习与准备工作。
2、 加“*”为选做题。做好可加分。
3、 严格按照数据结构实验报告模板和规范,及时完成实验报告。
4、 在个人主页上发文章提交作业。
5、 实验课会抽查3-5人,希望你可以被查到!
顺序栈和链栈
1、顺序栈
头文件:
#include<iostream> using namespace std;
Conversion类:
const int Size = 50; class Conversion { private: int data[Size]; int top; public: Conversion(){top=-1;} ~Conversion(){} void Push(int a[],int n); void Pop(); };
压栈函数:
void Conversion::Push(int a[],int n) { top=-1; if(top==Size-1) throw "上溢";for(int i=0;i<n;i++) { data[++top]= a[i]; };}
出栈函数:
void Conversion::Pop() { if (top == -1) throw "下溢"; while(top!=-1) { int x=data[top--]; cout<<x<<endl; } }
主函数:
void main() { Conversion a; int number[8] = {0,1,2,3,4,5,6,7}; a.Push(number,8); a.Pop(); }
2、链栈
头文件:
#include<iostream> using namespace std;
Node结构体:
struct Node{int data;Node * next;};
static Node * top;
压栈函数:
void Push(int a[],int n) { top = new Node;top->next = NULL;Node * s = NULL; for(int i=0;i<n;i++) { s = new Node;s->data = a[i];s->next = top;top = s; }; }
出栈函数:
void Pop() {while(top->next!=NULL){Node * p = top; cout<<top->data<<endl; top = top->next;delete p;}}
主函数:
void main() { int number[8] = {0,1,2,3,4,5,6,7}; Push(number,8); Pop(); }
3、实验结果(以上两个都一样)
阅读全文
0 0
- 实验3:栈和队列的基本操作实现及其应用——顺序队列和链队列
- 实验3:栈和队列的基本操作实现及其应用——顺序栈和链栈
- 实验三:栈和队列的基本操作实现及其应用——顺序栈
- 实验4:栈和队列的基本操作实现及其应用之《顺序队列》
- 实验4:栈和队列的基本操作实现及其应用之《顺序队列》
- 实验4:栈和队列的基本操作实现及其应用——链队列
- 实验4:栈和队列的基本操作实现及其应用之《顺序栈》
- 实验4:栈和队列的基本操作实现及其应用之《顺序栈》
- 实验4:栈和队列的基本操作实现及其应用之《顺序栈》
- 实验4:栈和队列的基本操作实现及其应用——循环队列
- 实验4:栈和队列的基本操作实现及其应用——链栈
- 实验4:栈和队列的基本操作实现及其应用之《链队列》
- 实验4:栈和队列的基本操作实现及其应用之《链队列》
- 实验4:栈和队列的基本操作实现及其应用之《链队列》
- 实验4:栈和队列的基本操作实现及其应用——进制转换以及实验总结
- 实验3:栈和队列的基本操作实现及其应用——十进制转换为二进制
- 实验4:栈和队列的基本操作实现及其应用3
- 实验4:栈和队列的基本操作实现及其应用之《循环队列》
- 浅谈程序员的英语学习
- int和Integer
- 北大高材生被华为辞退:用不用你,与能力无关!
- 什么叫互联网思维模式?
- 编译错误:Could not get unknown property 'release' for SigningConfig container
- 实验3:栈和队列的基本操作实现及其应用——顺序栈和链栈
- 内核漏洞进击之旅——Dark Composition Exploitation Case Study
- 【福利】3980元的web前端视频教程限量领取!!!
- 67 个拯救前端开发者的工具、库和资源
- 前端程序员需要知道的7种新型的CSS长度单位
- Java并发编程:Callable、Future和FutureTask
- 七个Web前端程序员必须会用css技巧
- 雷军叫板刘强东:京东有员工宿舍,我们有海景房
- 一个49岁的程序员