内容发布更新时间 : 2024/11/16 16:22:08星期一 下面是文章的全部内容请认真阅读。
实验三 栈和队列的基本操作
一、实验目的
1、掌握栈的顺序存储结构。 2、掌握栈特点,即先进后出原则。 3、掌握栈基本操作实现方法。
4、熟练掌握顺序队、链队的存储原理;
5、熟练掌握顺序队、链队的Java语言实现方法; 6、掌握队列空、队满的判断条件;
7、了解循环队列与普通队列实现上的不同及其解决方法。
二、实现内容
[问题描述] 1、栈
首先,创建栈,并置top指针为-1,栈处于空的状态。
第二,入栈。先判断栈是否是满栈。满栈的话,不做入栈操作,未满的话,做入栈操作。 第三,出栈。先判断栈是否为空,如果是空栈的话,不能做出栈操作,非空的话做出栈操作。 2、队列
首先,创建空队,置队首指针,队尾指针为0和-1
第二,入队操作。判断队列是否已满,队满的话,不能入队,未满的话,做入队操作。 第三,出队操作。判断队是否为空,如果空队的话,不能出队,未空的话,做处队操作。
[基本要求]用顺序存储结构实现存储
[实现提示]顺序存储结构是随机存储结构,直接数组来存储相关数据,用下标来表示栈顶,数据存储从下标0开始存储数据。
[程序实现]
参考书本相关程序实例
三、实验要求
1、通过建立一个简单的菜单来实现进栈、出栈、显示当前栈内元素和退除操作,所有进栈元素通过键盘获取;
2、通过建立一个简单的菜单来实现入队列、出队列、显示当前队列元素和退出操作,所有入队元素通过键盘获取;
3、进一步思考,如果将第二题改成循环队列的情况,代码将如何变动;
四、思考题
1、入栈操作和出栈操作的算法过程是如何的?数据输出和top指针的变化的顺序在出栈入栈过程中有何不同。
2、出队入队操作的算法过程是如何的?循环队列和顺序队的操作有何不同?