堆栈和队列

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

陕西科技大学实验报告

班级:学号:姓名:实验组别:

实验日期:报告日期:成绩:

报告内容:(目的和要求、原理、步骤、数据、计算、小结等)

实验名称:栈与队列

一、实验目的

1.掌握栈、队列的思想及其存储实现。

2.掌握栈、队列的常见算法的程序实现。

二、实验要求

1.编写函数,采用链式存储实现栈的初始化、入栈、出栈操作。

2.编写函数,采用顺序存储实现栈的初始化、入栈、出栈操作。

3.编写函数,采用链式存储实现队列的初始化、入队、出队操作。

4.编写函数,采用顺序存储实现队列的初始化、入队、出队操作。

5.编写一个主函数,在主函数中设计一个简单的菜单,分别调试

上述算法。

三、实验原理(流程图):

四、实验数据(源代码):

package B_Stack;

public class SqLinkStackDemo {

// 主函数中设计一个简单的菜单,分别调试上述算法

public static void main(String[] args) throws Exception { /** 顺序栈 */

SqStack s = new SqStack(8);

// 顺序栈栈的初始化

s.clear();

// 顺序栈的入栈

System.out.println("顺序栈入栈:");

s.push(5);

s.push('c');

s.push("Hello");

s.display();

// 顺序栈的出栈

System.out.println('\r' + "顺序栈出栈:");

s.pop();

s.display();

/** 链表栈 */

LinkStack ls = new LinkStack();

// 链表栈的初始化

ls.clear();

// 链表栈的入栈

System.out.println('\r' + "链表栈入栈:");

ls.push(88);

ls.push('Z');

ls.push("HelloWorld");

ls.display();

// 顺序栈的出栈

System.out.println('\r' + "链表栈出栈:");

ls.pop();

ls.display();

/** 顺序队列 */

CircleSqQueue circleSqQueue = new CircleSqQueue(8);

// 顺序存储实现队列的初始化

circleSqQueue.clear();

// 顺序存储实现队列的入队

System.out.println('\r' + "顺序队列入队:");

circleSqQueue.offer(666);

circleSqQueue.offer("队列");

circleSqQueue.offer('Q');

circleSqQueue.display();

// 顺序存储实现队列的出队

System.out.println('\r' + "顺序队列出队:");

circleSqQueue.pool();

circleSqQueue.display();

/** 链式队列 */

LinkQueue linkQueue = new LinkQueue();

// 链式存储实现队列的初始化

linkQueue.clear();

// 链式存储实现队列的入队

System.out.println('\r' + "链式队列入队:");

linkQueue.offer(999);

linkQueue.display();

// 链式存储实现队列的出队

System.out.println('\r' + "链式队列出队:");

linkQueue.pool();

linkQueue.display();

}

}

package B_Stack;

public interface IStack {

public void clear();

public boolean isEmpty();

public void push(Object x) throws Exception;

public Object pop();

}

package B_Stack;

public class SqStack implements IStack {

private Object[] stackElem;

private int top;

public SqStack(int maxSize) {

top = 0;

stackElem = new Object[maxSize];

}

// 顺序栈的初始化

public void clear() {

top = 0;

}

public boolean isEmpty() {

return top == 0;

}

// 顺序栈的出栈

public Object pop() {

相关文档
最新文档