Cet article partage le code pertinent pour Java pour implémenter des listes unique et des listes liées bidirectionnelles pour votre référence. Le contenu spécifique est le suivant
Java implémente la liste liée unique:
Code de package; class node {node Next; données int; Node public (int data) {this.data = data; }} class linkList {node First; // tête publique linkList () {this.first = null; } public void addNode (nœud no) {n ° NEXT = First; premier = no; // ajouter dans la tête} public void delectNode () {node n = first.next; d'abord = null; First = n; // Supprimer dans la tête} // Supprimer la position spécifiée public int // Voir combien d'éléments il y a nœud nd = d'abord; while (nd.next! = null) {nd = nd.next; Count ++; } Return Count; } public void delectExact (int n) {// supprimer la position spécifiée if (n> 1) {int count = 1; Nœud de = premier; while (count <n-1) {de = de.next; Count ++; } de.next = de.next.next; } else first = first.next; } public void addExact (int n, nœud nd) {if (n> 1) // ajouter la position spécifiée {int count = 1; Nœud de = premier; while (count <n-1) {de = de.next; Count ++; } nd.next = de.next; de.next = nd; } else first = first.next; } public int findNode (int n) {int count = 1; // trouver la position correspondant à un nœud de nombre de = premier; while (de.data! = n) {de = de.next; Count ++; if (de == null) {return -1; }} Return Count; } public void print () {nœud no = premier; // imprime tout while (no! = null) {System.out.println (n ° Data); NON = NO.NEXT; }}} classe publique textNode {public static void main (String [] args) {linkList ll = new linkList (); ll.addnode (nouveau nœud (12)); ll.addnode (nouveau nœud (15)); ll.addnode (nouveau nœud (18)); ll.addnode (nouveau nœud (19)); ll.addnode (nouveau nœud (20)); /*System.out.println(ll.first.data); ll.delectNode (); System.out.println (ll.first.data); * / System.out.println (ll.number ()); Ll.DelectExACT (3); ll.addexact (3, nouveau nœud (100)); System.out.println (ll.number ()); // ll.print (); System.out.println (ll.FindNode (112)); }}Java implémente la liste liée bidirectionnelle:
classe publique DoubleLink {public static void main (String [] args) {node2 no = new node2 (5); Non. ADDLEFT (nouveau Node2 (6)); Non. ADDRIGHT (nouveau Node2 (7)); /*No.print (); No.print2 (); * / No.AdDExACT2 (1, New Node2 (8)); Non. Print (); System.out.println ("-------------------"); Non. Print2 (); }} classe node2 {public node2 d'abord; Public Node2 End; Node public 2 gauche; Node public2 droit; int data = 0; Public Node2 (int n) {premier = this; end = this; first.data = n; } // Ajouter public void de la tête addleft (node2 avant) {first.left = avant; avant.Right = premier; d'abord = avant; } // Ajouter public void de la queue addright (node2 après) {end.Right = après; after.left = end; end = après; } // Insérez le nombre de publics publics AddExact (int n, node2 no) {int count = 0; if (n == 0) {addLeft (no); } else {node2 f = premier; while (true) {f = f.Right; Count ++; if (count == n) {// c'est le changement dans le pointage des quatre pointeurs n ° left = f.left; f.left.Right = non; // first.left = non; Non. Right = F; f.left = non; casser; }}}}} // Insérez le nombre de publics public AddExACT2 (int n, node2 no) {int count = 0; if (n == 0) {addRight (no); } else {node2 f = end; while (true) {f = f.left; Count ++; if (count == n) {n ° left = f; N ° Right = F.Right; f.Right.left = non; F.Right = non; casser; }}}}} // Positive Traversal public void print () {System.out.println (first.data); while (first.Right! = null) {System.out.println (first.Right.data); premier = premier.Right; } // System.out.println (end.data); } // Ordre inversé Traversal public void print2 () {System.out.println (end.data); while (end.left! = null) {System.out.println (end.left.data); end = end.left; }}} / * Il convient de noter que chaque fois qu'un nouvel objet est inséré, vous devez faire attention au changement de pointage du pointeur. Premièrement, le pointage des deux côtés de ce nouvel objet (gauche et droite), suivi du pointage de l'objet gauche à droite et du pointage de l'objet droit à gauche. Le pointage de ces quatre pointeurs doit être correct, sinon cela peut conduire à l'incapacité de mettre en œuvre une traversée d'ordre positif ou inversé. * // * Comparez les listes liées uniques, les listes liées simples ne peuvent être traversées que dans une direction car il n'y a qu'une seule tête, tandis qu'une liste liée bidirectionnelle a une tête et une queue. Il peut être traversé de la tête * ou de la queue. De plus, comme l'un des objets a des pointeurs dans deux directions, il peut obtenir l'objet * à gauche et l'objet à droite. * Mais pour les listes à liaison simple, car il n'y a qu'une seule direction, ils ne peuvent aller à gauche ou à droite. Lors de l'ajout d'objets, vous pouvez également les ajouter depuis le début ou de la fin. * Si une seule liste liée doit ajouter deux directions, elle est rare ou non, car elle n'a que des pointeurs vers une direction vers la gauche ou la droite *, tandis que chaque objet d'une liste liée bidirectionnelle a des pointeurs vers deux directions, ce qui ne sera pas plus flexible, mais cela constitue également plus de désavantages, car de cette manière, chaque objet * contiendra deux pointes, qui constitueront également plus de mémoire. * * * /Ce qui précède concerne cet article, j'espère qu'il sera utile pour tout le monde d'apprendre la programmation Java.