logo

Java saraksta mezgls

Java programmā ListNode ir būtiska datu struktūra, ko izmanto, lai efektīvi ieviestu saistītos sarakstus. Saistītie saraksti ir dinamiskas datu struktūras, kas sastāv no mezgliem, kur katram mezglam ir vērtība un atsauce uz nākamo saraksta mezglu. Šī raksta mērķis ir sniegt visaptverošu pārskatu par ListNode Java, aptverot tā funkcijas, priekšrocības un to, kā to efektīvi izmantot.

Kas ir ListNode?

ListNode apzīmē vienu mezglu saistītā sarakstā. Tas parasti satur divus galvenos komponentus: mezglā saglabāto vērtību vai datus un atsauci (vai saiti) uz nākamo mezglu sarakstā. Savienojot šos mezglus, mēs varam izveidot elastīgu un efektīvu datu struktūru, kas spēj veikt dažādas darbības.

ListNode definēšana Java:

Java programmā ListNode parasti tiek ieviesta kā klase ar diviem instanču mainīgajiem: datu lauks, lai saglabātu vērtību, un nākamais lauks, lai atsauktos uz nākamo mezglu. Šeit ir vienkāršas ListNode klases piemērs:

 public class ListNode { int val; ListNode next; public ListNode(int val) { this.val = val; } } 

Darbs ar ListNode:

    LinkedList izveide:

Lai izveidotu saistīto sarakstu, mēs katram mezglam izveidojam ListNode objektu un izveidojam savienojumus starp tiem. Šeit ir piemērs:

 ListNode node1 = new ListNode(10); ListNode node2 = new ListNode(20); ListNode node3 = new ListNode(30); node1.next = node2; node2.next = node3; 
    Saistītā saraksta šķērsošana:

Lai atkārtotu saistīto sarakstu, mēs sākam no galvenā mezgla (pirmā mezgla sarakstā) un sekojam nākamajām atsaucēm, līdz sasniedzam beigas (kur nākamā atsauce ir nulle). Tālāk ir sniegts iepriekš minētā saraksta šķērsošanas piemērs:

 ListNode current = node1; while (current != null) { System.out.println(current.val); current = current.next; } 
    Mezglu pievienošana un noņemšana:

ListNode ļauj mums pievienot un noņemt mezglus dažādās saistītā saraksta pozīcijās. Pielāgojot nākamās atsauces, mēs varam efektīvi ievietot vai dzēst mezglus. Šīs darbības ir noderīgas dinamiskām datu struktūrām, kurām nepieciešamas biežas modifikācijas.

Papildu darbības:

ListNode atbalsta citas darbības, piemēram, noteiktas vērtības meklēšanu, saistītā saraksta garuma atrašanu un dažādu manipulāciju veikšanu ar sarakstu, piemēram, apgriešanu vai kārtošanu.

e-bankas ierobežojumi

ListNode un LinkedLists priekšrocības:

    Dinamiskais izmērs:Saistītie saraksti var dinamiski palielināties vai sarukt, pievienojot vai noņemot elementus, atšķirībā no fiksēta izmēra masīviem.Efektīva ievietošana un dzēšana:ListNode ļauj veikt efektīvu ievietošanu un dzēšanu jebkurā saraksta pozīcijā, nodrošinot elastību datu pārvaldībā.Atmiņas efektivitāte:Saistītie saraksti atmiņu piešķir dinamiski, katram mezglam izmantojot tikai nepieciešamo apjomu, padarot tos piemērotus lielām vai dažādām datu kopām.Daudzpusība:Saistītie saraksti var būt atsevišķi saistīti (katrs mezgls norāda uz nākamo) vai divkārši saistīti (katrs mezgls norāda uz nākamo un iepriekšējo), piedāvājot dažādus kompromisus starp atmiņas lietojumu un funkcionalitāti.

Java ListNode datu struktūra nodrošina spēcīgu pamatu saistīto sarakstu ieviešanai. Izmantojot ListNode un ar to saistītās darbības, izstrādātāji var efektīvi apstrādāt dinamiskos datus, veikt sarežģītas manipulācijas un veidot daudzpusīgas datu struktūras. ListNode koncepcijas izpratne un apgūšana ievērojami uzlabos jūsu spēju risināt problēmas un izstrādāt efektīvus algoritmus Java programmēšanā.

Tālāk ir sniegts Java programmas piemērs, kas demonstrē ListNode datu struktūru un veic pamata darbības saistītajā sarakstā:

LinkedListExample.java

 class ListNode { int val; ListNode next; public ListNode(int val) { this.val = val; } } public class LinkedListExample { public static void main(String[] args) { // Creating a linked list: 10 -> 20 -> 30 ListNode node1 = new ListNode(10); ListNode node2 = new ListNode(20); ListNode node3 = new ListNode(30); node1.next = node2; node2.next = node3; // Traversing the linked list and printing the values System.out.println('Linked List:'); ListNode current = node1; while (current != null) { System.out.println(current.val); current = current.next; } // Output: 10 20 30 // Adding a new node: 15 -> 20 -> 30 ListNode newNode = new ListNode(15); newNode.next = node2; node1.next = newNode; // Traversing the updated linked list System.out.println('Updated Linked List:'); current = node1; while (current != null) { System.out.println(current.val); current = current.next; } // Output: 10 15 20 30 // Removing a node: 10 -> 15 -> 30 node1.next = newNode.next; // Traversing the modified linked list System.out.println('Modified Linked List:'); current = node1; while (current != null) { System.out.println(current.val); current = current.next; } // Output: 10 20 30 } } 

Izvade:

 Linked List: 10 20 30 Updated Linked List: 10 15 20 30 Modified Linked List: 10 20 30