Verknüpfte Liste in Java drucken
Eine verkettete Liste wird verwendet, um Elemente zu speichern, die als Knoten bezeichnet werden. Knoten bestehen aus zwei Entitäten - den Daten und einer Referenz. Referenz zeigt auf den nächsten Knoten. Ihre Adresse im Speicher definiert nicht die Reihenfolge der Elemente einer verketteten Liste.
Die Programmiersprache Java stellt uns die Klasse LinkedList
zur Verfügung. Diese Klasse ist unter Javas Collections Framework verfügbar, das die Funktionalität dieser doppelt verketteten Listendatenstruktur bereitstellt.
In diesem Tutorial stellen wir Ihnen vor, wie Sie eine verknüpfte Liste in Java drucken.
Wir können ein Linked-List-Objekt mit der Klasse LinkedList
erstellen, einige Elemente mit der Funktion add()
hinzufügen und anzeigen.
Siehe den Code unten.
import java.util.*;
public class ABC {
public static void main(String[] args) {
LinkedList<String> fruits = new LinkedList<>();
fruits.add("apple");
fruits.add("orange");
fruits.add("mango");
String str = fruits.listIterator(1).previous();
System.out.println(fruits);
}
}
Ausgabe:
[apple, orange, mango]
Wir können auch die Funktion toString()
verwenden, um die endgültige Liste als String anzuzeigen. Die Methode toString()
gibt die verknüpften Listenelemente in einem durch Kommas getrennten String-Format zurück.
Zum Beispiel,
import java.util.*;
public class ABC {
public static void main(String[] args) {
LinkedList<String> fruits = new LinkedList<>();
fruits.add("apple");
fruits.add("orange");
fruits.add("mango");
String str = fruits.listIterator(1).previous();
System.out.println(fruits.toString());
}
}
Ausgabe:
[apple, orange, mango]
Diese Methode analysiert die verknüpfte Liste von Anfang bis Ende und trennt sie durch Kommas.
Wir können auch eine benutzerdefinierte Klasse erstellen, um eine verknüpfte Liste zu initiieren und die erforderlichen Funktionalitäten zu erstellen. Bei der Arbeit mit einer solchen Klasse müssen wir eine Methode erstellen, um die Liste anzuzeigen.
Wir müssen die Funktion toString()
überschreiben, während wir diese Methode verwenden und sie basierend auf den Anforderungen des Benutzers aktualisieren.
Zum Beispiel,
public class LinkedListNode {
private int data;
private LinkedListNode next;
public LinkedListNode(int data) {
this.data = data;
this.next = null;
}
public int getData() {
return data;
}
public void setData(int d) {
data = d;
}
public LinkedListNode getNext() {
return next;
}
public void setNext(LinkedListNode n) {
next = n;
}
}
public class LinkedList {
public LinkedListNode head;
public static void main(String[] args) {
LinkedList list = new LinkedList();
list.insertFront(1);
list.insertFront(2);
list.insertFront(3);
System.out.println(list.toString());
}
public LinkedList() {
this.head = null;
}
public int removeFront() {
if (head == null) {
System.out.println("Empty list");
return 0;
} else {
int temp = head.getData();
head = head.getNext();
return temp;
}
}
public void insertFront(int data) {
if (head == null) {
head = new LinkedListNode(data);
} else {
LinkedListNode newNode = new LinkedListNode(data);
newNode.setNext(head);
head = newNode;
}
}
public void insertBack(int data) {
if (head == null) {
head = new LinkedListNode(data);
} else {
LinkedListNode newNode = new LinkedListNode(data);
LinkedListNode current = head;
while (current.getNext() != null) {
current = current.getNext();
}
current.setNext(newNode);
}
}
public int removeBack() {
if (head == null) {
System.out.println("Empty list");
return 0;
} else if (head.getNext() == null) {
int temp = head.getData();
head = null;
return temp;
} else {
LinkedListNode current = head;
while (current.getNext().getNext() != null) {
current = current.getNext();
}
int temp = current.getNext().getData();
current.setNext(null);
return temp;
}
}
public String toString() {
String result = "";
LinkedListNode current = head;
while (current.getNext() != null) {
result += current.getData();
if (current.getNext() != null) {
result += ", ";
}
current = current.getNext();
}
result += current.getData();
return "Contents of the List: " + result;
}
public LinkedListNode getHead() {
return head;
}
}
Ausgabe:
Contents of the List: 3, 2, 1
Wir können die erforderliche Liste auch direkt drucken, ohne sie in einen String zu formatieren. Wir beginnen auch mit dem Anfangsknoten, zeigen ihn an und gehen dann zum nächsten Knoten über.
Siehe den folgenden Code.
public class LinkedListNode {
private int data;
private LinkedListNode next;
public LinkedListNode(int data) {
this.data = data;
this.next = null;
}
public int getData() {
return data;
}
public void setData(int d) {
data = d;
}
public LinkedListNode getNext() {
return next;
}
public void setNext(LinkedListNode n) {
next = n;
}
}
public class LinkedList {
public LinkedListNode head;
public static void main(String[] args) {
LinkedList list = new LinkedList();
list.insertFront(1);
list.insertFront(2);
list.insertFront(3);
list.display();
}
public LinkedList() {
this.head = null;
}
public int removeFront() {
if (head == null) {
System.out.println("Empty list");
return 0;
} else {
int temp = head.getData();
head = head.getNext();
return temp;
}
}
public void insertFront(int data) {
if (head == null) {
head = new LinkedListNode(data);
} else {
LinkedListNode newNode = new LinkedListNode(data);
newNode.setNext(head);
head = newNode;
}
}
public void insertBack(int data) {
if (head == null) {
head = new LinkedListNode(data);
} else {
LinkedListNode newNode = new LinkedListNode(data);
LinkedListNode current = head;
while (current.getNext() != null) {
current = current.getNext();
}
current.setNext(newNode);
}
}
public int removeBack() {
if (head == null) {
System.out.println("Empty list");
return 0;
} else if (head.getNext() == null) {
int temp = head.getData();
head = null;
return temp;
} else {
LinkedListNode current = head;
while (current.getNext().getNext() != null) {
current = current.getNext();
}
int temp = current.getNext().getData();
current.setNext(null);
return temp;
}
}
public void display() {
LinkedListNode current = head;
while (current.getNext() != null) {
System.out.println(current.getData());
current = current.getNext();
}
System.out.println(current.getData());
}
public LinkedListNode getHead() {
return head;
}
}
Ausgabe:
3
2
1