美文网首页
数据结构----LinkedList链表

数据结构----LinkedList链表

作者: pgydbh | 来源:发表于2018-08-21 14:00 被阅读11次

结构

链表,双向,加速查询。
需要size()----大小
需要put(i)----放入
需要get(i)----取出

代码

public class LinkedList<T> {

    private int size;
    private Node head;
    private Node end;
    private Node poi;
    public LinkedList(){
        head = new Node<>();
        end = new Node<>();
        head.next = end;
        end.prev = head;
    }

    public int size(){
        return size;
    }

    public void put(T t){
        if (poi == null){
            poi = new Node<>();
            head.next = poi;
            end.prev = poi;
        } else {
            Node node = new Node();
            poi.next = node;
            node.prev = poi;
            node.next = end;
            end.prev = node;
            poi = node;
        }
        poi.t = t;
        size++;
    }

    public T get(int i){
        if (i >= 0 && i < size){
            if (i < size >> 1){
                Node temp = head;
                for (int j = 0; j < i; j++){
                    temp = temp.next;
                }
                return (T) temp.next.t;
            } else {
                Node temp = end;
                for (int j = 1; j < size - i; j++){
                    temp = temp.prev;
                }
                return (T) temp.prev.t;
            }
        } else {
            return null;
        }
    }

    public static class Node<T>{
        public T t;
        public Node<T> prev;
        public Node<T> next;
    }
}

相关文章

  • Go语言数据结构和算法-LinkedList(链表)

    Go语言数据结构和算法-LinkedList(链表) 节点和链表数据结构 Prepend(item) 在链表头新增...

  • 8.LinkedList

    ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。LinkedList不支...

  • 面试官:你给我讲一下LinkedList源码吧!网友:这不是章口

    一.LinkedList数据结构 1.1 数据结构 LinkedList 底层数据结构是一个双向链表,整体结构如下...

  • LinkedList必懂知识点

    Linkedlist 概述 Linkedlist集合 底层试下你的数据结构是双向链表(hashmap中的链表结构是...

  • Java之LinkedList实现原理

    LinkedList数据结构原理 LinkedList底层的数据结构是基于双向循环链表的,且头结点中不存放数据; ...

  • LinkedList源码详解

    LinkedList概述 LinkedList是一个双向链表,链表数据结构的特点是每个元素分配的空间不必连续、插入...

  • LinkedList实现原理

    LinkedList介绍 LinkedList底层所采用的数据结构是链表。链表是由多个节点构成,每个节点都包含三个...

  • 链表

    内容 链表数据结构 向链表添加元素 从链表移除元素 使用 LinkedList 表 双向链表 循环链表 链表数据结...

  • LinkedList

    [toc] 定义 LinkedList的底层数据结构是双向链表。通过对LinkedList的定义可以看出Linke...

  • 集合之LinkedList

    特性 LinkedList 集合底层实现的数据结构为双向链表 LinkedList 集合中元素允许为 null L...

网友评论

      本文标题:数据结构----LinkedList链表

      本文链接:https://www.haomeiwen.com/subject/elzdiftx.html