《数据结构》第三章 栈和队列 实验(两栈)

前端之家收集整理的这篇文章主要介绍了《数据结构》第三章 栈和队列 实验(两栈)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

一..实验目的

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

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

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

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

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

二.实验时间

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

三..实验内容

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

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

3.编程实现一个十进制数转换成二进制数。要求,要主程序中输出一个10进度数,输出其对应的2进制数序列。

前两题是必做题,第3题是选做题。

  1. #include<iostream>
  2. using namespace std;
  3. const int ZhanSize=100;
  4. template<class T>
  5. class Liangzhan
  6. {
  7. public:
  8. Liangzhan(){top1=-1;top2=ZhanSize;}
  9. ~Liangzhan(){}
  10. void Push(int i,T x);
  11. void Pop(int i);
  12. void GetTop(int i);
  13. int Empty(int i);
  14. private:
  15. void data[ZhanSize];
  16. int top1,top2;
  17. };
  18. void Liangzhan<T>::Push(int i,T x)
  19. {
  20. if(top1==top2-1)throw"上溢";
  21. if(i==1)data[++top1]=x;
  22. if(i==2)data[--top2]=x;
  23. }
  24. void Liangzhan<T>::Pop(int i)
  25. {
  26. if(i==1){
  27. if(top1==-1)throw"下溢";
  28. return data[top1--];
  29. }
  30. if(i==2){
  31. if(top2==ZhanSize)throw"下溢";
  32. return data[top2++];
  33. }
  34. }
四.参考资料

实验教材P183到192

五.实验报告

1.在博客中先写上实习目的和内容,画出主要操作运算算法图,然后分别上传程序代码。插入调试关键结果截图。

2.写一个博文,比较总结栈和队列。

猜你在找的数据结构相关文章