总结。
1.栈和队列
| Stack | Queue | |
|---|---|---|
| API | java.util.Stack; | java.util.Queue; java.util.LinkedList; |
| 定义 | Stack< Integer > stack = new Stack< Integer >(); | Queue< Integer > queue = new LinkedList< Integer >(); |
| 入 | stack.push(node); | queue .offer(node); |
| 出 | stack.pop(); | queue .poll(); |
| 顶/头 | stack.peek(); | queue .peek(); |
| 空 | stack.empty(); | queue.isEmpty(); |
Stack类
Stack类继承自Vector类。
- boolean empty()
判断栈是否为空 - E peek()
返回栈顶对象,不移除 - E pop()
返回栈顶对象,并移除 - E push(E item)
压入栈顶 - int search(Object o)
返回对象在栈的位置
Queue接口
常用的LinkedList类就实现了Queue接口。
- boolean add(E e)
向队列中添加元素 - E element()
返回队列的头,且不移除 - boolean offer(E e)
向队列中添加元素 - E peek()
返回队列的头,且不移除 - E poll()
返回队列的头,且移除 - E remove()
返回队列的头,且移除
add、element、remove会在操作失败时抛出异常,而offer、peek、poll在操作失败时返回特殊值。

本文深入探讨了栈和队列这两种基本数据结构的实现与应用。详细介绍了Java中Stack和Queue的API,包括它们的主要方法如push/pop、offer/poll等,以及如何使用这些方法进行数据的入栈/入队和出栈/出队操作。此外,还对比了Stack类与Queue接口的特性,为读者提供了丰富的代码示例。
379

被折叠的 条评论
为什么被折叠?



