在這個(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 泛型。