Eine Datenstruktur, die aus Knoten besteht, in denen in jedem Knoten Daten und ein Zeiger vorhanden sind und der Zeiger auf den nächsten Knoten zeigt, wird als verknüpfte Liste bezeichnet, die sich von einem Array unterscheidet, und wenn eine solche verknüpfte Liste umgekehrt wird, ist sie es auch sogenannte umgekehrte verknüpfte Liste. Dabei ist die Liste in zwei Teile unterteilt, den ersten Knoten der Liste und den Rest der verknüpften Liste, wobei die Umkehrfunktion für den Rest der verknüpften Liste aufgerufen wird und der Rest der verknüpften Liste mit dem ersten Knoten verknüpft ist , und der Kopfzeiger ist fixiert. In diesem Thema lernen wir etwas über umgekehrt verknüpfte Listen in Java.
Starten Sie Ihren kostenlosen Softwareentwicklungskurs
Webentwicklung, Programmiersprachen, Softwaretests und andere
Eine verknüpfte Liste kann in Java mithilfe von zwei Algorithmen umgekehrt werden. Sie sind:
Die folgenden Schritte beschreiben, wie ein iterativer Algorithmus funktioniert:
Die folgenden Schritte beschreiben, wie ein rekursiver Algorithmus funktioniert:
Hier sind die folgenden Beispiele aufgeführt
Java-Programm zum Umkehren einer einfach verknüpften Liste mithilfe eines iterativen Algorithmus
Code:
class List { static Node head1; static class Node { int data1; Node nex; Node(int d1) { data1 = d1; nex = null; } } //The linked list is reversed using this function Node reverselist(Node node1) { Node previous = null; Node curr = node1; Node nex = null; while (curr != null) { nex = curr.nex; curr.nex = previous; previous = curr; curr = nex; } node1 = previous; return node1; } // The contents of linked list are printed void printL(Node node1) { while (node1 != null) { System.out.print(node1.data1 + " "); node1 = node1.nex; } } public static void main(String[] args) { //The values to be inserted in the list before reversing are given here List l = new List(); l.head1 = new Node(30); l.head1.nex = new Node(40); l.head1.nex.nex = new Node(50); l.head1.nex.nex.nex = new Node(60); System.out.println("The items in the linked list that needs to be reversed are"); l.printL(head1); //Function to reverse the list is called here head1 = l.reverselist(head1); System.out.println(""); System.out.println("The items in the reversed linked list are"); l.printL(head1); } }
Ausgabe:
Java-Programm zum Umkehren einer einfach verknüpften Liste mithilfe eines iterativen Algorithmus
Code:
class List { static Node head1; static class Node { int data1; Node nex; Node(int d1) { data1 = d1; nex = null; } } // A recursive function to reverse the linked list Node reverse(Node current, Node previous) { //Last node is marked as head if (current.nex == null) { head1 = current; //previous node is updated with next current.nex = previous; return head1; } //current.nex node is saved for the recursive call Node nex1 = current.nex; //nex is updated current.nex = previous; reverse(nex1, current); return head1; } // Content of the reversed linked list are printed void printL(Node node) { while (node != null) { System.out.print(node.data1 + " "); node = node.nex; } } //Main method is called which prints the reversed linked list by calling the function public static void main(String[] args) { //The values to be inserted in the list before reversing are given here List list = new List(); list.head1 = new Node(20); list.head1.nex = new Node(30); list.head1.nex.nex = new Node(40); list.head1.nex.nex.nex = new Node(50); System.out.println("The items in the linked list that needs to be reversed are"); list.printL(head1); //Function to reverse the list is called here Node result = list.reverse(head1, null); System.out.println(""); System.out.println(""); System.out.println("The items in the reversed linked list are"); list.printL(result); } }
Ausgabe:
In diesem Tutorial verstehen wir das Konzept der Umkehrung der verknüpften Liste durch Definition und erklären die Logik, nach der die verknüpfte Liste umgekehrt wird. Es werden die beiden Algorithmen zum Umkehren der verknüpften Liste erläutert, bei denen es sich um einen iterativen Algorithmus handelt, und der rekursive Algorithmus wird zusammen mit den Programmierbeispielen zur Implementierung der Algorithmen in Java erläutert.
Das obige ist der detaillierte Inhalt vonUmgekehrt verknüpfte Liste in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!