栈与队列理论基础

队列是先进先出,栈是先进后出。

在Java中,(Stack)是一种遵循后进先出(LIFO)原则的数据结构。以下是栈的基本操作以及对应的方法:

  1. 入栈(Push):将元素添加到栈的顶部。
    对应方法:push(E item),将元素 item 推入栈顶。

  2. 出栈(Pop):从栈的顶部移除并返回元素。
    对应方法:pop(),移除并返回栈顶元素。

  3. 查看栈顶元素(Peek):返回栈顶的元素,但不对栈进行修改。
    对应方法:peek()返回栈顶元素,但不移除它。

  4. 判断栈是否为空:检查栈是否不包含任何元素。
    对应方法:isEmpty(),如果栈为空则返回 true,否则返回 false

这些是栈的基本操作和对应的方法。在Java中,可以使用现有的类库来实现栈数据结构,如 java.util.Stack 类或使用更通用的 java.util.Deque 接口的实现类,例如 java.util.ArrayDeque

需要注意的是,java.util.Stack 类是线程安全的,但在一些情况下可能会导致性能下降。如果不需要线程安全性,可以考虑使用 java.util.Deque 接口的实现类,如 java.util.ArrayDeque

 

在Java中,队列(Queue)是一种遵循先进先出(FIFO)原则的数据结构。以下是队列的基本操作以及对应的方法:

  1. 入队(Enqueue):将元素添加到队列的末尾。
    对应方法:offer(E e),将元素 e 添加到队列的末尾。

  2. 出队(Dequeue):从队列的头部移除并返回元素。
    对应方法:poll(),移除并返回队列头部的元素。

  3. 查看队头元素(Peek):返回队列头部的元素,但不对队列进行修改。
    对应方法:peek(),返回队列头部的元素,但不移除它
    E element(): 返回队列的头部元素,但不移除它。如果队列为空,则抛出异常。

    1. 无论是 element() 方法还是 peek() 方法,它们都用于返回队列的头部元素,但并不移除它。如果队列为空,则 element() 方法会抛出一个异常,而 peek() 方法则会返回 null
  4. 判断队列是否为空:检查队列是否不包含任何元素。
    对应方法:isEmpty(),如果队列为空则返回 true,否则返回 false

  5. 方法来自 Queue 接口:

    • boolean add(E e): 将指定元素添加到队列的尾部。如果添加成功,则返回 true;如果由于容量限制无法添加元素,则抛出异常
    • boolean offer(E e): 将指定元素添加到队列的尾部。如果添加成功,则返回 true;如果由于容量限制无法添加元素,则返回 false
    • E remove(): 移除并返回队列的头部元素。如果队列为空,则抛出异常
    • E poll(): 移除并返回队列的头部元素。如果队列为空,则返回 null
    • E element(): 返回队列的头部元素,但不移除它。如果队列为空,则抛出异常。
    • E peek(): 返回队列的头部元素,但不移除它。如果队列为空,则返回 null

这些是队列的基本操作和对应的方法。在Java中,可以使用现有的类库来实现队列数据结构,如 java.util.Queue 接口及其实现类,例如 java.util.LinkedList 或 java.util.ArrayDeque

需要注意的是,Queue 接口是一个抽象接口,它定义了队列的基本操作,但不能直接实例化。可以使用其实现类,如 LinkedList 或 ArrayDeque 来创建队列对象。

 方法来自 LinkedList 类(除了 Queue 接口中定义的方法,还包括 LinkedList 类自身的方法):

  • void addFirst(E e): 将指定元素插入到队列的开头。
  • void addLast(E e): 将指定元素插入到队列的末尾。
  • E removeFirst(): 移除并返回队列的第一个元素。
  • E removeLast(): 移除并返回队列的最后一个元素。
  • E getFirst(): 返回队列的第一个元素,但不移除它。
  • E getLast(): 返回队列的最后一个元素,但不移除它。

Deque 是一个双端队列(Double Ended Queue)接口,它扩展了 Queue 接口。Deque 接口提供了在队列两端进行插入、删除等操作的方法。

posted @ 2024-03-25 22:25  翻斗花园小美Q  阅读(4)  评论(0编辑  收藏  举报