伙计们,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"));
}
}
答案 0 :(得分:2)
嗯,当你宣布
时,你需要明白这一点public link next;
next
不是类link
的对象,它是一个可以指向类link
的对象的变量,当你执行next = new link();
时它是创建一个对象,next
开始指向一个对象。
所以,这实际意味着,你的类list
不包含它自己类型的对象,但是包含一个可以指向list
类型的对象的变量,它是链表的基本概念(一个节点指向另一个节点,形成连续链)