• 学习队列,Java实现


    什么是队列结构:

     代码实现

    /**
     * @PackageName
     * @author:
     * @date:2022/7/29
     */
    public class QueueTable {
    
    
        public static void main(String[] args){
            SQType sq = new SQType();
            DATA4 data1 ;
    
            Scanner input = new Scanner(System.in);
    
            SQType queue = sq.SQInit(sq);
            System.out.println("入栈队列操作:请输入:姓名,年龄");
            do {
    
                DATA4 data = new DATA4();
                data.name=input.next();
                if (data.name.equals("0")){
                    break;
                }else {
                    data.age = input.nextInt();
                    queue.InSQType(queue,data);
                }
            }while (true);
            String temp = "1";
            System.out.println("出队操作,按任意非0键出队列操作");
            temp = input.next();
            while (!temp.equals("0")){
                data1 = queue.OutSQType(queue);
                System.out.println("出队信息:"+data1.name+data1.age);
                temp = input.next();
            }
            System.out.println("测试结束");
            queue.SQFree(queue);
        }
    }
    
    /**
     * 数据元素
     */
    class DATA4{
        String name;
        int age;
    }
    
    /**
     * 队列结构
     */
    class SQType{
    
        static final int QUEUELEN = 50;
        //队列数组,用来存储数据元素
        DATA4[] data = new DATA4[QUEUELEN];
        //队头 用来操作队列
        int head;
        //队尾 用来操作队列
        int tail;
    
        /**
         * 初始化队列
         * @param
         * @return
         */
        SQType SQInit(SQType q){
            if (q!= null){
                head = 0;
                tail = 0;
                return q;
            }
            return null;
        }
    
        /**
         * 判断队列是否空
         * @param q
         * @return
         */
        int SQIsEmpty(SQType q){
            if (q.head==q.tail){
                return 1;
            }
            return 0;
        }
    
        /**
         * 判断队列是否满
         * @param q
         * @return
         */
        int SQIsFull(SQType q){
            if (q.tail==QUEUELEN){
                return 1;
            }
            return 0;
        }
    
    
        /**
         * 清空队列
         * @param q
         */
        void SQClear(SQType q){
            q.head=0;
            q.tail=0;
        }
    
    
        /**
         * 释放队列存储空间
         * @param q
         */
        void SQFree(SQType q){
            if (q != null){
                q=null;
            }
    
        }
    
        /**
         * 入队
         * @param q
         * @param data
         * @return
         */
        int InSQType(SQType q,DATA4 data){
    
            if (q.tail == QUEUELEN){
                System.out.println("队列已经满了");
                return 0;
            }else {
                //先使用再+1  ++在前是先自己+1,再使用,++在后是先使用在+1
                q.data[q.tail++] = data;
                return 1;
            }
    
        }
    
        /**
         * 出队
         * @param q
         * @return
         */
        DATA4 OutSQType(SQType q){
    
            if (q.head == q.tail){
                System.out.println("空的队列");
                System.exit(0);
    
            }
            //先使用再+1  ++在前是先自己+1,再使用,++在后是先使用在+1
            return q.data[q.head++];
    
        }
    
        /**
         * 读节点数据
         * @param q
         * @return
         */
        DATA4 PeektSQType(SQType q){
            if (SQIsEmpty(q)==1){
                System.out.println("空的队列");
                return null;
            }
            return q.data[q.head];
        }
    
        int SQLen(SQType q){
            return q.tail-q.head;
        }
    }
    

     通过理论,实践相结合,将更好掌握队列的知识,并能够很好应用

  • 相关阅读:
    怎么把图片进行压缩?分享几种压缩图片的方法
    Linux CC++ 网络编程博客
    Codeforces Round 949 (Div. 2 ABCD) 视频讲解
    解决visual studio Just-In-Time Debugger调试
    数据结构 | 算法的时间复杂度和空间复杂度【详解】
    java毕业设计旧物置换网站(附源码、数据库)
    MySQL事物
    【Java 基础篇】Java List 使用指南:深入解析列表操作
    第12/100天 阅读笔记
    【深度思考】聊聊JDK动态代理原理
  • 原文地址:https://blog.csdn.net/qq_40213824/article/details/126059438