간단한 토론 목록

1. 체인 스토리지
(1) (메모리 셀들의 연속적인 그룹 불연속 일 수있다) 선형 형태의 임의의 세트를 저장하는 저장 부에 저장된 데이터 요소의 사슬이고;
(2) 각각의 데이터를 표현하기 위해서 요소는 [I]는 그 다음 요소와의 직접적인 관계는 [내가 + 1], A는 [I]뿐만 아니라 자신에 대한 정보를 저장하는 데 필요한 데이터 요소가 상기 요구를 모두 직접적인 후속 정보의 표시를 저장할 정보 부분은 노드라고합니다.
노드 2 정의
노드 포인터 필드는 데이터 필드 및 두 부분으로 포함
되는 정보 엘리먼트 저장 데이터 : 데이터 필드
포인터 필드, 저장 위치는 n가 (포인터 또는 포인터 체인 저장하는 도메인 정보 라 함)에 직접 후속 소자 각 리니어 테이블에 연결된 노드의 링크 된리스트를 참조한다.

/**
 * 创建一个结点
 * 结点包括两个数据域和指针域两个部分
 */
class Node{
    private int data;
    private Node next;//指针将一个个结点链接在一起

    public int getData() {
        return data;
    }

    public void setData(int data) {
        this.data = data;
    }

    public Node getNext() {
        return next;
    }

    public void setNext(Node next) {
        this.next = next;
    }
}
public class 链表 {
    public static void main(String[] args) {
        /**
         * 向链表里面存储元素
         */
        Node head = new Node();//创建一个头结点
        head.setData(21);//通过set方法存储数据
        Node n = new Node();//想在放第二个数据,就需要再创建一个新的结点
        n.setData(34);//将第二个数据放进去
        head.setNext(n);
        /**
         * n把自己的地址通过set方法交给头结点head里面的指针Next,
         * 通过这种方法将两个数据连接起来,这样就可以通过指针来访问下一个结点的数据
         */
        n = new Node();//在添加第三个数据
        n.setData(23);
        head.getNext().setNext(n);//getNext拿到下一个结点的引用,再把新的地址交给上一个结点保存

        n = new Node();
        n.setData(18);
        head.getNext().getNext().setNext(n);
        System.out.println(head.getData());//用get方法取出数据第一个元素
        System.out.println(head.getNext().getData());
        System.out.println(head.getNext().getNext().getData());
        System.out.println(head.getNext().getNext().getNext().getData());
    }
}

요소 목록의 일부 동작

public class LinkedList1 {
    /**
     * 封装一个链表
     *
     * @param
     * @return
     */
    private class Node {//创建一个节点类(包括数据域和指针域两部分)
        private int data;
        private Node next;//指针将一个个结点链接在一起

        public Node getNext() {
            return next;
        }

        public int getData() {
            return data;
        }

        public void setData(int data) {
            this.data = data;
        }

        public void setNext(Node next) {
            this.next = next;
        }
    }

    private Node head = null;//一开始头结点为空
    private int size = 0;//元素个数
    public Integer get(int i) {
        if(i == 0) return head.getData();//取出头结点指向的结点数据
        Node temp = head;
        for(int t = 0;t < i;t++){
            temp = temp.getNext();
            if(temp == null) return null;
        }
       return temp.getData();
    }

    public void remove(int i) {

    }

    public void add(int n) {
        Node d = new Node();
        d.setData(n);//把n通过set方法赋值给d
        if(head == null){
            head = d;
        }else{
            Node temp = head;//将head的地址赋值给temp
         for(int i = 0;i < size - 1;i++){
            temp = temp.next;
         }
         temp.setNext(d);//给头结点所指向的next赋值
        }
        size++;
    }
}

public class TestLinkdlist1 {
    public static void main(String[] args) {
        LinkedList1 l = new LinkedList1();
        l.add(23);
        l.add(45);
        l.add(67);

        System.out.println(l.get(2));
    }
}

추천

출처blog.csdn.net/weixin_44084434/article/details/90734809