0
点赞
收藏
分享

微信扫一扫

DML&&数据库的数据类型

前言

那么此时,我们就思考,有没有一种数据结构,可以随用随取,插入/删除数据可以不移动元素?👉👉 

于此Java集合中又引入了链表结构.

链表的概念及结构

概念

        

结构 

 链表的实现

创建LinkedList类 实现IList接口

//模拟实现LinkedList链表
public class MySingleLinkedList implements IList {

    //定义一个静态内部类 --节点
    static class LinkedNode {
        public int value;//数值域
        public LinkedNode next;//next域 存放的是节点的地址

        public LinkedNode(int value) {
            this.value = value;
        }
    }
    public LinkedNode head;//head是 链表的头节点 null

    public void createList() {
        LinkedNode node1 = new LinkedNode(12);
        LinkedNode node2 = new LinkedNode(23);
        LinkedNode node3 = new LinkedNode(34);
        LinkedNode node4 = new LinkedNode(45);
        node1.next = node2;//表示node1的下一个节点是node2 node2这个引用存储了地址
        node2.next = node3;
        node3.next = node4;
        this.head = node1;//head指向了第一个节点的地址
    }

     @Override
    public void display() {
        LinkedNode cur = head;//定义临时变量
        while(cur != null) {   //当头节点为null时 算把所有节点都遍历完了
            System.out.print(cur.value + " ");
            cur = cur.next;//从第一个节点走到下一个节点
        }
    }

     @Override
    public int size() {   //计算有多少个节点
        int count = 0;
        LinkedNode cur = head;
        while(cur != null) {
            count ++;
            cur = cur.next;
        }
        return count;
    }

}
public interface IList {
        void addFirst(int data);
        void addLast(int data);
        void addIndex(int index,int data);
        boolean contains(int key);
        void remove(int key);
        void removeAllKey(int key);
        int size();
        void clear();
        void display();
}

解析

举报

相关推荐

0 条评论