Java算法数据结构第二节队列

一、队列算法介绍:

队列是一种先进先出(FIFO,First In First Out)的数据结构,其中元素的添加和移除分别发生在队列的两端:一端添加(enqueue),另一端移除(dequeue)。

Java提供了多种方式来实现队列,包括使用内置的集合类如LinkedList,或者是直接使用Queue接口的实现类如ArrayDequePriorityQueue

二、代码实现:

1)创建数组:

还有数组的对应属性要写完

通过构造器创建数组

2)判断队列的形态(是否满/空):

3)添加数据:

添加数据要先判断队列是否满,如果满了就要抛出该异常,保证程序可以运行下去

添加成功是尾部加一释放空间

4)数据删除:

数据删除和添加同理,都要先判断队列形态,确保符合删除条件

删除成功是头部加一压缩空间

5**)显示所有数据:**

先判断状态是否为空

符合条件就用循环输出

6**)显示头部数据:**

头部指针加一就是头部元素的下标

7)显示尾部数据:

尾部指针所指的位置就是尾部元素的下标

8) 写主函数:

java 复制代码
public static void main(String[] args) {
        ArrayQueue arrayQueue = new ArrayQueue(3);
        System.out.println("1,添加数据到队列");
        System.out.println("2,队列数据移除");
        System.out.println("3,显示队列数据");
        System.out.println("4,显示队列头部元素");
        System.out.println("5,显示队列尾部元素");
        while (true){
        System.out.println("输入选项");
        Scanner scanner = new Scanner(System.in);
        Integer next = scanner.nextInt();


    switch (next){
        case 1://添加数据

           try {
               System.out.println("输入要添加的数据");
               int next1 = scanner.nextInt();
               arrayQueue.addQueue(next1);
           }catch (Exception e){
            System.out.println(e.getMessage());
        }

            break;
        case 2://移除数据
            try{
                int res=arrayQueue.removeQueue();
                System.out.println("取出元素是"+res);
            }catch (Exception e){
                System.out.println(e.getMessage());
            }
            break;
        case 3://显示数据
            try{
                arrayQueue.showQueue();

            }catch (Exception e){
                System.out.println(e.getMessage());
            }

            break;
        case 4://查看队列头
              try{
                  int res=arrayQueue.showheadQueue();
                  System.out.println("头部元素是"+res);
              }catch (Exception e){
                  System.out.println(e.getMessage());
              }
            break;
        case 5:
            try{
                int res=arrayQueue.showyiQueue();
                System.out.println("尾部元素是"+res);
            }catch (Exception e){
                System.out.println(e.getMessage());
            }

            break;

这样就能观察到队列的运行方式。

三、注意:

要注意这样的队列是一次性的。

相关推荐
EnglishJun30 分钟前
数据结构的学习(四)---栈和队列
数据结构·学习
数智工坊1 小时前
【数据结构-特殊矩阵】3.5 特殊矩阵-压缩存储
数据结构·线性代数·矩阵
芝士爱知识a1 小时前
AlphaGBM 深度解析:下一代基于 AI 与蒙特卡洛的智能期权分析平台
数据结构·人工智能·python·股票·alphagbm·ai 驱动的智能期权分析·期权
兩尛1 小时前
160. 相交链表/c++
数据结构·链表
2302_813806221 小时前
【嵌入式修炼:数据结构篇】——单向链表的排序
数据结构·链表·排序算法
2302_813806222 小时前
【嵌入式修炼:数据结构篇】——树和二叉树
数据结构
苦藤新鸡2 小时前
56.组合总数
数据结构·算法·leetcode
菜鸟233号2 小时前
力扣647 回文子串 java实现
java·数据结构·leetcode·动态规划
Charlie_lll2 小时前
力扣解题-[3379]转换数组
数据结构·后端·算法·leetcode
酉鬼女又兒3 小时前
27. 移除元素
数据结构·算法·排序算法