• 链表:可排序的双向链表


    前面实现了双向链表:https://www.cnblogs.com/wwjj4811/p/15108917.html
    可排序也简单,直接继承DoublyLinkedList

    
    /**
     * 可排序的双向链表
     * @author wen.jie
     * @date 2021/8/9 21:31
     */
    public class SortedDoublyLinkedList<T extends Comparable<T>> extends DoublyLinkedList<T>{
    
        @Override
        public void add(T t){
            if (isEmpty()){
                Node<T> node = new Node<>(t, head, null);
                head.next = node;
                last = node;
            }else {
                sort(t, head.next);
            }
            size++;
        }
    
        private void sort(T t, Node<T> node) {
            if(node.next == null){
                if(node.item.compareTo(t) < 0)
                    putLast(t);
                else
                    insert(t, last.pre, last);
            }else {
                if(node.item.compareTo(t) < 0)
                    sort(t, node.next);
                else
                    insert(t, node.pre, node);
            }
        }
    }
    

    测试:

    SortedDoublyLinkedList<Integer> list = new SortedDoublyLinkedList<>();
    list.add(1);
    list.add(1);
    list.add(3);
    list.add(2);
    list.add(1);
    list.add(2);
    list.add(5);
    list.add(4);
    for (Integer integer : list) {
        System.out.println(integer);
    }
    

    image-20210809223717006

  • 相关阅读:
    docker安装kafka
    Prometheus警报
    MongoDB介绍
    SpringMvc中几个注解
    无DNS安装VCSA
    互联网本质
    什么是领导力
    58沈剑_一分钟专栏
    以数据库思维理解区块链
    区块链的4个实际应用
  • 原文地址:https://www.cnblogs.com/wwjj4811/p/15121037.html
Copyright © 2020-2023  润新知