java数据结构——有序链表

有序链表是一种按关键值排序的数据结构,其插入操作比数组快,因元素无需移动。删除表头最大或最小值的时间复杂度为O(1),但寻找插入点可能需要O(N)次比较。当频繁访问最小值且插入不频繁时,有序链表是理想选择。
摘要由CSDN通过智能技术生成
  • 在有序链表中,数据时按照关键值排序的,有序链表的删除常常是只局限于删除在链表头部的最大(或最小)链结点。
  • 一般,在大多数需要使用有序数组的场合也可以使用有序链表,有序链表优于有序数组的地方是插入的速度(因为元素不需要移动),另外链表可以扩展到全部有效的使用内存,而数组只能局限一个固定的大小,但是,有序链表的实现确实比数组难一些。

   public class LinkOrder {
   

    static class Node {
   

        Integer data;
        Node next;

        public Node(Integer data) {
   
            this.data = data;
        }

    }


        private Node head;
        private int size;

        public LinkOrder() {
   
            this.head = null;
            this.size = 0;
        }

        // 判断是否为空
        private boolean isEmpty() {
   
            return head == null ? true : false;
        }

        // 获取链表大小
        private int getSize() {
   
            return size;
        }

        // 在链表中插入一个结点,保持链表有序性(头结点最小,尾结点最大)
        public void insert(int key) {
   
            Node newLink = new Node(key);
            Node previous 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值