zoukankan      html  css  js  c++  java
  • 队列的实现

      队列是一种特殊的线性表,特殊之处在于它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。

    队列的特性:先进先出;

    以下代码是用链表实现的队列:

    1.队列的接口

     1 public interface IQueue<T> {
     2     //入队操作
     3     void enQueue(T e);
     4     //出队操作
     5     T deQueue();
     6     //返回队列的大小
     7     int getSize();
     8     //判断队列是否为空
     9     boolean isEmpty();
    10     //查看队首元素
    11     T peek();
    12 }

    2.队列类

     1 import java.util.EmptyStackException;
     2 import java.util.LinkedList;
     3 
     4 public class MyQueue<T> extends LinkedList<T> implements IQueue<T> {
     5 
     6     @Override
     7     public void enQueue(T e) {
     8         super.add(e);
     9         
    10     }
    11 
    12     @Override
    13     public T deQueue() {
    14         if(getSize()<=0) throw new EmptyStackException();
    15         T value=super.getFirst();
    16         super.removeFirst();
    17         return value;
    18     }
    19 
    20     @Override
    21     public boolean isEmpty() {
    22         return getSize()>0;
    23     }
    24 
    25     @Override
    26     public T peek() {
    27         if(getSize()<=0) throw new EmptyStackException();
    28         T value=super.getFirst();
    29         return value;
    30     }
    31     
    32     @Override
    33     public int getSize() {
    34         return super.size();
    35     }
    36 
    37 }
  • 相关阅读:
    欧拉回路
    2018 年 ACM-ICPC 焦作站现场赛感受
    3.1 基础-抛小球
    2.2 进阶-禁忌雷炎
    初学Java-循环输入直到文件结束
    1.1 基础-取近似值
    1.2 进阶-对称的二叉树
    LEETCODE
    算法
    算法
  • 原文地址:https://www.cnblogs.com/LgxBoKeYuan/p/10205899.html
Copyright © 2011-2022 走看看