在這個(gè)實(shí)例中,我們將學(xué)習(xí)用Java實(shí)現(xiàn)鏈表數(shù)據(jù)結(jié)構(gòu)。
要了解此示例,請(qǐng)確保您首先訪問(wèn)以下教程,
class LinkedList {
//創(chuàng)建Node類的對(duì)象
//表示鏈表的頭部
Node head;
//靜態(tài)內(nèi)部類
static class Node {
int value;
//將每個(gè)節(jié)點(diǎn)連接到下一個(gè)節(jié)點(diǎn)
Node next;
Node(int d) {
value = d;
next = null;
}
}
public static void main(String[] args) {
//創(chuàng)建一個(gè)LinkedList對(duì)象
LinkedList linkedList = new LinkedList();
//為每個(gè)鏈表節(jié)點(diǎn)賦值
linkedList.head = new Node(1);
Node second = new Node(2);
Node third = new Node(3);
//將鏈表的每個(gè)節(jié)點(diǎn)連接到下一個(gè)節(jié)點(diǎn)
linkedList.head.next = second;
second.next = third;
//打印節(jié)點(diǎn)值
System.out.print("LinkedList: ");
while (linkedList.head != null) {
System.out.print(linkedList.head.value + " ");
linkedList.head = linkedList.head.next;
}
}
}輸出結(jié)果
LinkedList: 1 2 3
在上面的示例中,我們已經(jīng)用Java實(shí)現(xiàn)了單鏈表。在這里,鏈表由3個(gè)節(jié)點(diǎn)組成。
每個(gè)節(jié)點(diǎn)由value和next組成。value變量表示的節(jié)點(diǎn)的值 和 next表示鏈接到下一節(jié)點(diǎn)。
Java提供了一個(gè)內(nèi)置LinkedList類,可用于實(shí)現(xiàn)鏈表。
import java.util.LinkedList;
class Main {
public static void main(String[] args){
//使用LinkedList類創(chuàng)建鏈表
LinkedList<String> animals = new LinkedList<>();
//將元素添加到LinkedList
animals.add("Dog");
//在鏈表開(kāi)頭添加元素
animals.addFirst("Cat");
// 在鏈表末尾添加元素
animals.addLast("Horse");
System.out.println("LinkedList: " + animals);
// 訪問(wèn)第一個(gè)元素
System.out.println("第一個(gè)元素: " + animals.getFirst());
//訪問(wèn)最后一個(gè)元素
System.out.println("最后一個(gè)元素: " + animals.getLast());
}
}輸出結(jié)果
LinkedList: [Cat, Dog, Horse] 第一個(gè)元素: Cat 最后一個(gè)元素: Horse
在上面的示例中,我們使用LinkedList類在Java中實(shí)現(xiàn)了鏈表。在這里,我們使用了類提供的方法從鏈表中添加元素和訪問(wèn)元素。
注意,我們?cè)趧?chuàng)建鏈表時(shí)使用了尖括號(hào)<String>。它表示鏈表是泛型類型。要了解有關(guān)泛型的更多信息,請(qǐng)?jiān)L問(wèn)Java 泛型。