LinkedList实现.类包含它自己的对象



朋友们,LinkedList的实现引起了我的一点误解。我知道如何实现LinkedList的所有方法,但我不明白为什么类Link包含自己的对象内部(类Link内部)。smb可以解释为什么Link类在里面包含自己的对象吗?有什么类比吗?提前感谢!

Link

package LinkedList;
public class Link {
    public String data;
    public Link next;
    public Link(String data){
        this.data = data;
        this.next = null;
    }
    public void display(){
        System.out.println(data);
    }
}
Class `LinkedList`
    class LinkedList{
        public Link firstLink;
        public LinkedList(){
            this.firstLink = null;
        }
        public void insert(String data){
            Link myLink = new Link(data);
            myLink.next = firstLink;
            firstLink = myLink;
        }
        public Link deleteFirst(){
            Link deletedLink = firstLink;
            firstLink = firstLink.next;
            return deletedLink;
        }
        public boolean search(String data){
            Link current = firstLink;
            while(current != null){
                if(current.data.equals(data)){
                    return true;
                }
                else{
                    current = current.next;
                }
            }
            return false;
        }
        public void displayList(){
            Link current = firstLink;
            while(current != null){
                current.display();
                current = current.next;
            }
        }
    }

LinkedTester

package LinkedList;
public class LinkTester {
    public static void main(String[] args){
        LinkedList theLinkedList = new LinkedList();
        theLinkedList.insert("A");
        theLinkedList.insert("B");
        theLinkedList.insert("C");
        theLinkedList.insert("D");
        theLinkedList.insert("E");
        theLinkedList.displayList();
        System.out.println();
        System.out.println(theLinkedList.search("A"));
    }
}

当你声明

时,你需要明白这一点
public link next;

next不是类link的对象,它是一个变量,可以指向类link的对象,当您执行next = new link();时,即对象创建时,next开始指向对象。

所以,这实际上意味着,你的类list不包含自己类型的对象,但包含一个变量,可以指向list类型的对象,这是链表的基本概念(一个节点指向另一个节点,形成一个连续的链)

最新更新