`

堆栈,队列的实现

 
阅读更多
interface Storage {
void put(int x);
int get();
}
class Stack implements Storage {
public void put(int x) {
if (top > MaxElemNum - 1) {
System.out.println("栈已满,最大元素数量为:" + MaxElemNum + ",已有元素个数:" + top);
System.exit(-1); // 这里的错误处理方式是直接退出
}
Storage[top++] = x;
}
public int get() {
if (top <= 0) {
System.out.println("栈已空");
System.exit(-1); // 这里的错误处理方式是直接退出
}
return Storage[--top];
}
public Stack(int max) {
MaxElemNum = max;
Storage = new int[MaxElemNum];
}
public Stack() {
};
private int MaxElemNum = 100;
private int Storage[] = new int[MaxElemNum];
private int top = 0;
}
class Queue implements Storage {
public void put(int x) {
if (top > MaxElemNum - 1) {
System.out.println("队列已满,最大元素数量为:" + MaxElemNum + ",已有元素个数:" + top);
System.exit(-1); // 这里的错误处理方式是直接退出
}
Storage[top++] = x;
}
public int get() {
if (top == bottom) {
System.out.println("队列已空");
top = bottom = 0;
System.exit(-1); // 这里的错误处理方式是直接退出
}
return Storage[bottom++];
}
public Queue(int max) {
MaxElemNum = max;
Storage = new int[MaxElemNum];
}
public Queue() {
};
private int MaxElemNum = 100;
private int Storage[] = new int[MaxElemNum];
private int top = 0, bottom = 0;
}
class StorageManger {
void put_data(Storage store, int data) {
store.put(data);
}
int get_data(Storage store) {
return store.get();
}
}
class Demo {
public static void main(String args[]) {
Stack myStack = new Stack(5); // default new Stack()=new Stack(100)
Queue myQueue = new Queue(5); // default new Queue()=new Queue(100)
StorageManger storeMan = new StorageManger();
for (int i = 1; i <= 5; i++)
storeMan.put_data(myStack, i);
for (int i = 1; i <= 5; i++)
System.out.println(storeMan.get_data(myStack));
System.out.println();
// for(int i=1;i<=5;i++)
// storeMan.put_data(myQueue,i);
// for(int i=1;i<=5;i++)
// System.out.println(storeMan.get_data(myQueue));
for (int i = 1; i <= 5; i++)
myStack.put(i);
for (int i = 1; i <= 5; i++)
myQueue.put(myStack.get());
for (int i = 1; i <= 5; i++)
System.out.println(myQueue.get());
}
}
分享到:
评论

相关推荐

    使用堆栈实现队列、的出、进

    ### 使用堆栈实现队列 #### 背景与目的 在计算机科学中,队列是一种先进先出(FIFO)的数据结构,而堆栈则是一种后进先出(LIFO)的数据结构。通常情况下,这两种数据结构拥有各自不同的操作接口,如队列支持`...

    利用栈和队列实现的计算器的C语言

    在本主题中,我们将深入探讨如何使用栈和队列这两种基本数据结构来实现一个简单的计算器,该计算器用C语言编写并通过了测试。下面将详细阐述相关知识点。 首先,栈是一种后进先出(LIFO)的数据结构,它类似于现实...

    数据结构——堆栈和队列

    总的来说,这个压缩包提供了关于数据结构——堆栈和队列的C语言实现,以及额外的数字转换和字符串处理功能。这些基础知识对于理解和编写高效的计算机程序至关重要。通过学习和理解这些内容,开发者能够更好地解决...

    堆栈队列模拟

    本文将深入探讨堆栈和队列的概念、操作以及它们在实际应用中的价值,同时结合C语言实现堆栈和队列的模拟。 首先,堆栈(Stack)是一种后进先出(LIFO,Last In First Out)的数据结构。它的操作主要包括压入(Push...

    C#实现冒泡堆栈队列

    ### C#实现冒泡堆栈队列:详细解析与应用 #### 冒泡排序:算法原理与代码解读 冒泡排序是一种简单的排序算法,通过重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的...

    线性表、堆栈、队列

    在C++中,`std::stack`和`std::queue`已经封装了底层数据结构的管理,因此使用它们可以方便地实现堆栈和队列功能,而无需关心底层细节。 总结起来,线性表、堆栈和队列是数据结构的基础,它们在算法设计和程序实现...

    C# 链表 堆栈 队列

    最后,`Chapter8_2`则可能讲解了队列的原理和使用场景,例如如何利用队列实现一个简单的打印任务调度系统。 总的来说,理解和掌握链表、堆栈和队列这些基本数据结构及其在C#中的实现,对于提升编程能力和解决实际...

    好用的VC队列与堆栈算法类

    本文将详细讲解堆栈和队列的概念,以及如何在C++中实现这两个数据结构。 堆栈(Stack)是一种后进先出(Last In First Out, LIFO)的数据结构,它的操作主要集中在一端,称为栈顶。常见的堆栈操作有压入(Push)、...

    用堆栈实现模拟队列

    例如,当需要频繁进行入队和出队操作,但系统不支持高效队列实现时,这是一个很好的解决方案。 总的来说,使用堆栈实现模拟队列是一种巧妙的算法设计技巧,它结合了栈和队列的特点,实现了在有限资源下的高效数据...

    数据结构-堆栈和队列(C++)

    在C++编程中,标准库提供了`&lt;stack&gt;`和`&lt;queue&gt;`头文件,它们提供了模板类`std::stack`和`std::queue`,可以直接用来实现堆栈和队列的操作,极大地简化了开发过程。使用这些模板类时,只需要指定存储元素的类型即可...

    常用数据结构(堆栈,队列,列表)JAVA代码

    在这个主题中,我们将深入探讨Java实现的三种基本数据结构:堆栈(Stack)、队列(Queue)和列表(List)。这些概念是计算机科学的核心部分,对理解和解决复杂问题至关重要。 1. **堆栈(Stack)**: - 堆栈是一种...

    堆栈链表与队列链表的基本操作

    学习和理解堆栈和队列的链表实现对理解数据结构和算法至关重要,它们在递归、回溯、任务调度、内存管理等许多领域都有应用。通过编写和运行这些程序,可以加深对这些概念的理解,并提升编程能力。在实际开发中,掌握...

    堆栈与队列实验(含C代码和实验报告:括号匹配完成,利用栈队列逆置,栈的操作)

    堆栈和队列是两种最基本且广泛使用的数据结构,它们在各种算法和程序设计中扮演着核心角色。 堆栈(Stack)是一种后进先出(Last In First Out,简称LIFO)的数据结构。想象一下图书馆的书架,最后一本书放在最上面...

    网络爬虫用堆栈队列贮存url

    总之,这个网络爬虫实现通过堆栈和队列有效地管理URL,利用HtmlClient和HtmlParser进行HTTP通信和HTML解析。配合其他的辅助库,如日志记录、编码解码和测试工具,构建了一个完整的爬虫系统,适用于初学者学习和实践...

    C++堆栈实现队列.doc

    C++ 栈实现队列知识点 栈和队列的基本概念 在计算机科学中,栈(Stack)和队列(Queue)是两种基本的数据结构。栈是一种后进先出(LIFO,Last In First Out)的数据结构,元素的添加和删除都只能在栈顶进行。队列...

    数据结构 堆栈和队列

    "数据结构 堆栈和队列" 堆栈是一种基本的数据结构,它是一种后进先出(LIFO)的数据结构,最近添加的元素将被最先移除。...理解堆栈和队列的实现原理和特点是非常重要的,才能更好地应用它们来解决实际问题。

    基于 Java 实现的队列和堆栈

    - **实现方式**:常见的队列实现有`LinkedList`(链表实现)和`ArrayDeque`(数组双端队列实现)。链表实现允许快速的插入和删除,而数组实现则在空间效率上更优。 - **应用**:队列常用于任务调度、事件处理、多...

    在Visual Basic编程中堆栈和队列的应用

    #### VB中的堆栈与队列实现 ##### 1. 基础概念 - **堆栈**是一种后进先出(LIFO, Last In First Out)的数据结构,意味着最后一个添加的元素将是第一个被移除的。 - **队列**则是一种先进先出(FIFO, First In First ...

    labview堆栈实现及堆栈状态机

    标题“labview堆栈实现及堆栈状态机”指的是使用LabVIEW来构建和操作堆栈,并利用堆栈的概念来设计和实现一个状态机。状态机是一种用于描述系统行为的模型,它通过在不同状态之间转换来执行任务。在LabVIEW中,堆栈...

    新编数据结构—堆栈和队列

    可能还包含了一些程序代码,比如用C++、Java或Python等编程语言实现堆栈和队列的数据结构,这些代码可以帮助读者更直观地理解这些概念,并能够动手实践。 堆栈的实现通常包括一个top指针,指向当前堆栈顶部的元素;...

Global site tag (gtag.js) - Google Analytics