用链表实现了栈的基本操作:入栈、出栈、查看栈顶数据以及判断栈是否有数据
/** * 用链表实现栈 * @author Administrator * * @param <E> */ public class MyStackLink<E> { //定义一个初始长度为0的数组来缓存数据 Node head = null; int length = 0;//结点个数 //将数据压入栈中 public void push(E e) { //创建结点 Node n = new Node(e); n.next=head; head=n; length++; } //查看栈顶的数据 public E get() { // return head == null?null:head.e; return head.e; } //出栈 public E poll() { if(head==null) { return null; } Node n=head; head = n.next; n.next=null; length--; return n.e; } //判断栈是否为空 public boolean isEmpty() { return length == 0; } private class Node { E e; Node next; public Node(E e) { this.e = e; } } }
因为代码和功能基本上差不多就在这里一起用链表实现了队列
/** * 用链表实现队列 * @author Administrator * * @param <E> */ public class Queue<E> { Node head = null; private Node last = null; int length = 0;//结点个数 //将数据放入队列中 public void push(E e) { //创建结点 Node n = new Node(e); if(head==null) { head = n; }else { last.next = n; } last = n; length++; } //查看队列的数据 public E get() { return head == null?null:head.e; } //去队列的首数据 public E poll() { if(head==null) { return null; } Node n=head; head = n.next; n.next=null; length--; return n.e; } //判断队列是否为空 public boolean isEmpty() { return length == 0; } private class Node { E e; Node next; public Node(E e) { this.e = e; } } }
相关推荐
本篇文章将详细讲解Java中的队列、链表和栈,这些概念是许多初学者和专业人士都需要掌握的基础知识。 首先,我们来谈谈队列。队列是一种先进先出(First In First Out,简称FIFO)的数据结构,类似于现实生活中的...
在计算机科学中,栈和队列是两种基本的数据结构,它们在编程中有着广泛的应用。栈被称为“后进先出”(LIFO, Last In First Out)数据结构,而队列则是“先进先出”(FIFO, First In First Out)数据结构。这两种...
1. **熟练掌握栈和队列的基本操作**:在数组和链表两种存储结构上实现栈和队列的基本操作。 2. **应用栈和队列解决实际问题**:通过具体的编程练习,学习如何利用栈和队列来解决简单的实际问题。 #### 实验内容 本...
本篇将深入探讨如何用链表来实现线性表,并通过提供的`ChainList.java`和`ListInterface.java`文件来理解其实现细节。 首先,线性表具有顺序访问的特点,其元素可以通过索引进行访问。链表是一种非连续存储结构,每...
栈以顺序结构实现,队列以链表实现。 需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。输入数据按到达或离去的时刻有序。栈中每个元素表示一辆汽车,包含两个数据项:...
本压缩包"基于JAVA实现的常用数据结构代码"包含了多个关键的数据结构实现,包括复杂度分析、动态数组、链表、栈、队列以及二叉搜索树。以下是这些数据结构的详细说明: 1. **复杂度**:在计算机科学中,复杂度分为...
常见的队列实现有数组队列和链表队列。Java提供了`java.util.LinkedList`类可以作为队列使用,同时`java.util.Queue`接口定义了队列的操作,如`add()`添加元素,`remove()`移除并返回头元素,`peek()`查看但不移除头...
在Java中,除了LinkedList,还可以使用ArrayDeque类来实现栈和队列,ArrayDeque提供了更高效的操作,因为它基于数组而不是链表。 在实际应用中,LinkedList适合于频繁插入和删除的场景,因为这些操作的时间复杂度为...
栈和队列是数据结构中的基础概念,它们在编程中有着广泛的应用,特别是在Java面试中常常被用来测试候选人的算法和...在面试中,候选人可能需要现场编写代码,实现这些功能,因此熟悉这些概念和实现方式是非常必要的。
同样,队列可以用数组或链表来实现,主要操作有enqueue(入队)、dequeue(出队)和检查队首元素。在某些特定情况下,还有优先级队列,其中元素按照优先级排序。 实验报告通常包括以下部分: 1. 实验目的:明确...
本资源提供了关于栈和队列的源代码实现,这对于理解这两种数据结构的工作原理以及如何在实际编程中应用它们非常有帮助。 首先,我们来深入理解栈和队列的概念: **栈(Stack)**: 栈是一种后进先出(LIFO,Last ...
本资源是一个关于Java实现常用数据结构和算法的集合,涵盖了链表、栈、队列、树、堆以及图等核心概念,同时也包含了排序等基础算法。下面将详细解释这些知识点。 1. **链表**:链表是一种线性数据结构,它通过节点...
1. 设计和实现栈和队列的类结构,包括构造函数、压入、弹出、入队、出队等方法。 2. 使用栈来实现简单的逆序输出字符串、括号匹配检查等问题。 3. 使用队列来实现简单的打印队列、银行服务模拟等场景。 4. 探讨栈和...
在编程中,栈和队列的实现可以使用数组、链表或者更高级的数据结构如二叉堆。例如,使用数组实现栈,我们可以利用数组的索引来表示位置,数组的末尾作为栈顶;对于队列,可以使用双端数组,一端用于入队,另一端用于...
在编程中,许多语言提供了内置的栈和队列数据结构,如Python的`collections.deque`可以作为双端队列,支持栈和队列操作,Java的`java.util.Stack`和`java.util.LinkedList`分别实现了栈和队列。此外,还可以自定义...
"Java数据结构之链表、栈、队列、树的实现方法示例" 在计算机科学中,数据结构是一种组织和存储数据的方式,以便实现高效的数据存取和处理。Java数据结构中常用的数据结构有链表、栈、队列、树等,本文将详细介绍...
在Java中,LinkedList类就是链表的实现,适用于实现队列和栈等数据结构。 5. **二叉树(Binary Tree)**:二叉树是每个节点最多有两个子节点的数据结构,分为左子节点和右子节点。常见的二叉树类型有二叉搜索树、...
通过这两个实验,我们不仅学会了如何用Java实现栈和队列这两种重要的数据结构,而且还掌握了如何将它们应用于解决实际问题。栈和队列的应用非常广泛,它们在计算机科学的各个领域中都扮演着重要的角色。例如,栈在...
总结,对于Java初学者来说,理解栈和队列的概念、操作和实现方式是学习数据结构的基础。通过熟练掌握这些知识,可以为后续更复杂的数据结构和算法学习打下坚实的基础。在实际编程中,栈常用于函数调用、表达式求值等...