区块链技术博客
www.b2bchain.cn

数据结构与算法-基础(五)队列(Qeque)求职学习资料

本文介绍了数据结构与算法-基础(五)队列(Qeque)求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

队列的定义

队列也是一种线性表,只能在头尾两端进行操作,主要特点:

  • 队尾:只能从队尾添加元素,叫做入队(enQueue)
  • 队头:只能从队头移除元素,叫做出队(deQueue)
  • 先进先出元素,First In First Out(FIFO)

接口设计

根据队列的定义设计接口如下表:

函数 释义
int size() 元素数量
boolean isEmpty() 是否为空
void clear() 清空
void enQueue(E element) 入队
E dequeue() 出队
E front() 获取队列的头元素
  • E 是泛型类型

实现

看队列,需要操作它的头部和尾部,所以从探究过的动态数组链表 中选择时,可以优先选择双向链表

public class Queue<E> {      private List<E> list = new LinkList<>();     /**      * 元素数量      * @return      */     int size() {         return list.size();     }     /**      * 是否为空      * @return      */     boolean isEmpty() {         return list.isEmpty();     }      /**      * 清空      */     void clear() {         list.clear();     }      /**      * 入队      * @param element      */     void enQueue(E element) {         list.add(element);     }     /**      * 出队      * @return      */     E deQueue() {         return list.remove(0);     }     /**      * 获取队头元素      * @return      */     E front() {         return list.get(0);     } }

双端队列(Deque)

双端队列是可以在队列的两头都可以操作入队和出队。所以增加了相关的接口

队列的定义

队列也是一种线性表,只能在头尾两端进行操作,主要特点:

  • 队尾:只能从队尾添加元素,叫做入队(enQueue)
  • 队头:只能从队头移除元素,叫做出队(deQueue)
  • 先进先出元素,First In First Out(FIFO)

接口设计

根据队列的定义设计接口如下表:

函数 释义
int size() 元素数量
boolean isEmpty() 是否为空
void clear() 清空
void enQueue(E element) 入队
E dequeue() 出队
E front() 获取队列的头元素
  • E 是泛型类型

实现

看队列,需要操作它的头部和尾部,所以从探究过的动态数组链表 中选择时,可以优先选择双向链表

public class Queue<E> {      private List<E> list = new LinkList<>();     /**      * 元素数量      * @return      */     int size() {         return list.size();     }     /**      * 是否为空      * @return      */     boolean isEmpty() {         return list.isEmpty();     }      /**      * 清空      */     void clear() {         list.clear();     }      /**      * 入队      * @param element      */     void enQueue(E element) {         list.add(element);     }     /**      * 出队      * @return      */     E deQueue() {         return list.remove(0);     }     /**      * 获取队头元素      * @return      */     E front() {         return list.get(0);     } }

双端队列(Deque)

双端队列是可以在队列的两头都可以操作入队和出队。所以增加了相关的接口

队列的定义

队列也是一种线性表,只能在头尾两端进行操作,主要特点:

  • 队尾:只能从队尾添加元素,叫做入队(enQueue)
  • 队头:只能从队头移除元素,叫做出队(deQueue)
  • 先进先出元素,First In First Out(FIFO)

接口设计

根据队列的定义设计接口如下表:

函数 释义
int size() 元素数量
boolean isEmpty() 是否为空
void clear() 清空
void enQueue(E element) 入队
E dequeue() 出队
E front() 获取队列的头元素
  • E 是泛型类型

实现

看队列,需要操作它的头部和尾部,所以从探究过的动态数组链表 中选择时,可以优先选择双向链表

public class Queue<E> {      private List<E> list = new LinkList<>();     /**      * 元素数量      * @return      */     int size() {         return list.size();     }     /**      * 是否为空      * @return      */     boolean isEmpty() {         return list.isEmpty();     }      /**      * 清空      */     void clear() {         list.clear();     }      /**      * 入队      * @param element      */     void enQueue(E element) {         list.add(element);     }     /**      * 出队      * @return      */     E deQueue() {         return list.remove(0);     }     /**      * 获取队头元素      * @return      */     E front() {         return list.get(0);     } }

双端队列(Deque)

双端队列是可以在队列的两头都可以操作入队和出队。所以增加了相关的接口

部分转自互联网,侵权删除联系

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » 数据结构与算法-基础(五)队列(Qeque)求职学习资料
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们