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;

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

三、注意:

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

相关推荐
weixin_457760006 小时前
Python 数据结构
数据结构·windows·python
明洞日记8 小时前
【数据结构手册002】动态数组vector - 连续内存的艺术与科学
开发语言·数据结构·c++
fashion 道格8 小时前
数据结构实战:深入理解队列的链式结构与实现
c语言·数据结构
xxxxxxllllllshi8 小时前
【LeetCode Hot100----14-贪心算法(01-05),包含多种方法,详细思路与代码,让你一篇文章看懂所有!】
java·数据结构·算法·leetcode·贪心算法
铁手飞鹰9 小时前
二叉树(C语言,手撕)
c语言·数据结构·算法·二叉树·深度优先·广度优先
[J] 一坚11 小时前
深入浅出理解冒泡、插入排序和归并、快速排序递归调用过程
c语言·数据结构·算法·排序算法
司铭鸿11 小时前
祖先关系的数学重构:从家谱到算法的思维跃迁
开发语言·数据结构·人工智能·算法·重构·c#·哈希算法
yk0820..11 小时前
测试用例的八大核心要素
数据结构
北京地铁1号线12 小时前
数据结构:堆
java·数据结构·算法
得物技术12 小时前
从数字到版面:得物数据产品里数字格式化的那些事
前端·数据结构·数据分析