队列实现:
package com.test.unicode;
import java.util.LinkedList;
public class MyQueue {
private LinkedList<Object> queue = new LinkedList<Object>();
public void put(Object o) {
queue.addLast(o);
}
public Object get() {
return queue.removeFirst();
}
public boolean empty() {
return queue.isEmpty();
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
MyQueue mq = new MyQueue();
mq.put("zhangsan");
mq.put("lisi");
mq.put("wangwu");
System.out.println(mq.get());
System.out.println(mq.get());
System.out.println(mq.get());
System.out.println(mq.empty());
}
}
栈的实现:
package com.test.unicode;
import java.util.LinkedList;
public class MyStack {
private LinkedList<Object> stack = new LinkedList<Object>();
public Object pop() {
if (stack.isEmpty()) {
return null;
}
return stack.removeFirst();
}
public void push(Object o) {
stack.addFirst(o);
}
public Object peek() {
return stack.getFirst();
}
public boolean empty() {
return stack.isEmpty();
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
MyStack ms = new MyStack();
ms.push("zhangsan");
ms.push("lisi");
ms.push("wangwu");
System.out.println(ms.pop());
System.out.println(ms.peek());
System.out.println(ms.pop());
System.out.println(ms.empty());
}
}
分享到:
相关推荐
在Java中,除了LinkedList,还可以使用ArrayDeque类来实现栈和队列,ArrayDeque提供了更高效的操作,因为它基于数组而不是链表。 在实际应用中,LinkedList适合于频繁插入和删除的场景,因为这些操作的时间复杂度为...
以下是一个使用LinkedList实现队列的Queue类示例: ```java import java.util.LinkedList; public class Queue { private LinkedList<Object> queue = new LinkedList(); public void enqueue(Object item) { ...
例如,Python的`collections.deque`可以方便地创建双端队列,而Java的`LinkedList`可以轻松实现队列和栈的功能。 总之,通过队列和栈的结合应用,我们可以设计出一个简单的停车管理系统,它不仅能满足基本的停车...
在Java中,LinkedList同样可以用于实现队列,主要通过addLast()和removeFirst()方法。 以下是使用LinkedList模拟队列的实现: 1. 创建LinkedList实例。 ```java LinkedList<Object> queue = new LinkedList(); ```...
例如,在一个文字编辑器中,撤销和重做操作可以使用栈来实现,每次撤销或重做操作都可以将当前状态压入栈中。 然而,栈也存在一些缺点。只能在一头操作数据,存取其他项很慢。例如,在一个栈中添加或删除元素时,...
LinkedList可以很方便地实现队列,因为它支持在两端进行快速操作。 在给定的“例题03 栈和队列”中,可能包含了各种基于栈和队列的算法问题,例如: 1. **括号匹配**:使用栈来检查一个字符串中的括号是否正确配对...
在Java中,我们可以使用`java.util.Queue`接口及其实现类,如`LinkedList`或`ArrayDeque`来创建队列。例如,`LinkedList`可以作为队列使用,因为它支持在两端进行插入和删除操作。队列的主要操作有`add()`(添加元素...
传统的栈可以用数组或链表来实现,但在某些情况下,我们可能需要利用其他数据结构如队列来实现栈。 #### 2. 队列与栈的区别 - **队列**:是一种先进先出(First In, First Out, FIFO)的数据结构,即最早进入队列...
C++标准库提供`queue`容器,但我们可以用链表自行实现队列,以获得更灵活的控制和理解数据结构的工作原理。 栈是另一种线性数据结构,遵循后进先出(LIFO)原则。它类似于堆叠物品,最后放入的物品最先被取出。栈...
以上就是单链表、栈和队列的基本概念及C语言实现。理解并熟练掌握这些数据结构对编程能力的提升至关重要,因为它们在各种算法和问题解决中都有着广泛的应用,例如括号匹配、表达式求值、深度优先搜索等。通过实践和...
Java中可以使用LinkedList、ArrayList或PriorityQueue来实现队列,其中LinkedList和ArrayList适用于普通队列,而PriorityQueue则用于优先级队列。以下是一个使用LinkedList实现的队列示例: ```java import java....
在编程中,许多语言提供了内置的栈和队列数据结构,如Python的`collections.deque`可以作为双端队列,支持栈和队列操作,Java的`java.util.Stack`和`java.util.LinkedList`分别实现了栈和队列。此外,还可以自定义...
在Java中,LinkedList类就是链表的实现,适用于实现队列和栈等数据结构。 5. **二叉树(Binary Tree)**:二叉树是每个节点最多有两个子节点的数据结构,分为左子节点和右子节点。常见的二叉树类型有二叉搜索树、...
链式队列通常使用链表(LinkedList)实现,因为链表的插入和删除操作在任何位置都能高效进行。以下是一个简单的链式队列实现: ```python class Node: def __init__(self, data=None): self.data = data self....
`ArrayDeque`提供了快速的插入和删除操作,且在大多数情况下比使用`ArrayList`或`LinkedList`实现的栈更高效。 2. **Stack类**:Java标准库中的`java.util.Stack`类也是实现栈的一个选项。它是`Vector`类的子类,...
- **链队列**:使用链表实现队列,其中链表的头部作为队头,尾部作为队尾。 **时间复杂度**:队列的Enqueue和Dequeue操作的时间复杂度通常为O(1)。 #### 四、Java Collections API中的表 **Java Collections API*...
在IT领域,数据结构是解决问题的关键工具之一,而栈和队列是两种基本的数据结构。本主题探讨如何利用栈和队列解决“走迷宫”的问题。在这个问题中,我们通常将迷宫视为一个二维网格,其中每个节点代表一个位置,路径...
熟悉队列的使用和实现能够显著提高解决这类问题的效率。在实际编程中,Java还提供了其他队列实现,如`ArrayDeque`(高效且灵活的双端队列)、`PriorityQueue`(基于优先级堆的队列)等,以适应不同场景的需求。
- **基本操作**:在Java中,可以使用`java.util.Queue`接口来实现队列。主要方法有`add()`(在队尾添加元素)、`remove()`(移除并返回队头元素)、`peek()`(查看但不移除队头元素)等。 - **实现方式**:常见的...