• 单链表实现有序队列


    插入、删除功能实现

    /*
     * 使用单链表;每次插入大约需要比较N/2次;
     * 插入效率是O(N),删除表头元素效率是O(1)
     */
    public class MySortQueue {
    
        // 使用单链表实现
        private Entry root;
        private static class Entry {
            int value;
            Entry after;
            public Entry (int mumber) {
                this.value = mumber;
            }
        }
        // 对外暴躁的插入方法,主要处理root元素的相关操作
        public void insert(int mumber) {
            Entry insert = new Entry(mumber);
            if (root == null) {
                root = insert;
                return;
            }
            if (insert.value < root.value) {
                insert.after =root;
                root = insert;
            } else {
                // 调用 insertSort方法
                insertSort(insert, root);
            }
        }
        // 受保护的插入方法
        private void insertSort(Entry inset, Entry entry) {
            if (entry.after == null) {
                entry.after = inset;
                return;
            }
            if (inset.value < entry.after.value) {
                inset.after = entry.after;
                entry.after = inset;
            } else {
                insertSort(inset, entry.after);
            }
        }
        // 队列的删除方法
        public int pop () {
            int value = root.value;
            root = root.after;
            return value;
        }
    }
    // 测试类
    class Test {
        public static void main(String[] args) {
            MySortQueue mySortQueue = new MySortQueue();
            mySortQueue.insert(8);
            mySortQueue.insert(800);
            mySortQueue.insert(2);
            mySortQueue.insert(50);
    
            int pop = mySortQueue.pop();
            System.out.print(pop + "    ");
            int pop2 = mySortQueue.pop();
            System.out.print(pop2 + "    ");
            int pop3 = mySortQueue.pop();
            System.out.print(pop3 + "    ");
            int pop4 = mySortQueue.pop();
            System.out.print(pop4 + "    ");
    
            // 输出结果:2    8    50    800
        }
    }
  • 相关阅读:
    Vue.js-项目目录结构解析
    Vue.js-创建Vue项目(Vue项目初始化)并不是用Webstrom创建,只是用Webstrom打开
    Node.js-npm安装包目录修改
    Node.js-Webstorm2018配置nodejs
    Node.js-ReferenceError: _filename is not defined
    cas系列-自定义异常提示(五)
    cas系列-cas登出(四)
    cas系列-cas REST协议(三)
    maven引入第三方jar包
    持续api管理翻译
  • 原文地址:https://www.cnblogs.com/Mike_Chang/p/13221001.html
Copyright © 2020-2023  润新知