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;

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

三、注意:

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

相关推荐
AI科技星42 分钟前
接近光速运动下的光速不变性:基于张祥前统一场论的推导与验证
数据结构·人工智能·经验分享·算法·计算机视觉
scx201310042 小时前
20251025 分治总结
数据结构·c++·算法
while(1){yan}3 小时前
数据结构之堆
数据结构·python·算法
Miraitowa_cheems4 小时前
LeetCode算法日记 - Day 84: 乘积为正数的最长子数组长度
数据结构·算法·leetcode·贪心算法·线性回归·深度优先·动态规划
雾岛听蓝4 小时前
C语言:使用顺序表实现通讯录
c语言·数据结构·经验分享·笔记·visualstudio
不是老弟4 小时前
rwqsd
数据结构·c++·算法
程序员阿鹏5 小时前
560.和为k的子数组
数据结构
zbh06045 小时前
洛谷P5788 【模板】单调栈——单调栈
数据结构·算法
泡沫冰@6 小时前
数据结构(9)
数据结构
草莓工作室6 小时前
数据结构14:查找
数据结构·算法