实验三 栈的基本操作 下载本文

内容发布更新时间 : 2024/11/16 14:48:07星期一 下面是文章的全部内容请认真阅读。

实验三 栈和队列的基本操作

一、实验目的

1、掌握栈的顺序存储结构。 2、掌握栈特点,即先进后出原则。 3、掌握栈基本操作实现方法。

4、熟练掌握顺序队、链队的存储原理;

5、熟练掌握顺序队、链队的Java语言实现方法; 6、掌握队列空、队满的判断条件;

7、了解循环队列与普通队列实现上的不同及其解决方法。

二、实现内容

[问题描述] 1、栈

首先,创建栈,并置top指针为-1,栈处于空的状态。

第二,入栈。先判断栈是否是满栈。满栈的话,不做入栈操作,未满的话,做入栈操作。 第三,出栈。先判断栈是否为空,如果是空栈的话,不能做出栈操作,非空的话做出栈操作。 2、队列

首先,创建空队,置队首指针,队尾指针为0和-1

第二,入队操作。判断队列是否已满,队满的话,不能入队,未满的话,做入队操作。 第三,出队操作。判断队是否为空,如果空队的话,不能出队,未空的话,做处队操作。

[基本要求]用顺序存储结构实现存储

[实现提示]顺序存储结构是随机存储结构,直接数组来存储相关数据,用下标来表示栈顶,数据存储从下标0开始存储数据。

[程序实现]

参考书本相关程序实例

三、实验要求

1、通过建立一个简单的菜单来实现进栈、出栈、显示当前栈内元素和退除操作,所有进栈元素通过键盘获取;

2、通过建立一个简单的菜单来实现入队列、出队列、显示当前队列元素和退出操作,所有入队元素通过键盘获取;

3、进一步思考,如果将第二题改成循环队列的情况,代码将如何变动;

四、思考题

1、入栈操作和出栈操作的算法过程是如何的?数据输出和top指针的变化的顺序在出栈入栈过程中有何不同。

2、出队入队操作的算法过程是如何的?循环队列和顺序队的操作有何不同?