Java mengimplementasikan fungsi menambahkan dan menghapus daftar tertaut dua arah, kode lengkap
Paket Linked; Class LinkedTable {} Public Class LinkedTableTest {// Bangun daftar tunggal tertaut node node node1 = node new ("name1"); node statis node2 = node baru ("name2"); node statis node3 = node baru ("name3"); node node statis4 = node baru ("name4"); simpul statis node5 = node baru ("name5"); public static void main (string [] args) {// atur pointer setpoint (); // loop melalui system.out.println ("******* Daftar tertaut awal **********"); out (node1, node5); System.out.println (); // masukkan node di belakang node2 addNode (node2, node3); // loop melalui system.out.println ("******* masukkan node2.5 *********"); out (node1, node5); System.out.println (); // hapus node node2.setNextNode (node3); node3.setNextNodef (node2); // loop melalui system.out.println ("******* hapus node2.5 *******"); out (node1, node5); System.out.println (); } // atur pointer public static void setPoint () {// atur pointer node1.setNextNode (node2); node2.setNextNode (node3); node3.setNextNode (node4); node4.setNextNode (node5); // atur reverse pointer node5.setNextNodef (node4); node4.setNextNodef (node3); node4.setNextNodef (node3); node3.setNextNodef (node2); node2.setNextNodef (node1); } // loop melalui daftar tunggal ditautkan statis public static outlinked (node startNode) {node node = new node (); node.setNextNode (startNode); do {node = node.getNextNode (); System.out.print (node.getName ()+"----"); } while (node.getNextNode ()! = null); } // Loop terbalik melalui daftar tunggal tertaut statis public static outlinkedf (node endnode) {node node = new node (); node.setNextNodef (endnode); do {node = node.getNextNodef (); System.out.print (node.getName ()+"----"); } while (node.getNextNodef ()! = null); } // Loop melalui public static void out (node startNode, node endnode) {outlinked (startNode); System.out.println (); outlinkedf (endnode); } // masukkan node public static void addNode (node prenode, node nextNode) {node node_add = node node ("name2.5"); node_add.setNextNode (prenode.getNextNode ()); prenode.setNextNode (node_add); node_add.setNextNodef (nextNode.getNextNodef ()); nextNode.setNextNodef (node_add); }} class node {private string name; Node Private NextNode; node pribadi nextnodef; public void setName (nama string) {this.name = name; } public void setNextNode (node nextNode) {this.nextNode = nextNode; } public void setNextNodef (node nextNodef) {this.nextNodef = nextNodef; } public string getName () {return this.name; } node publik getNextNode () {return this.nextNode; } node publik getNextNodef () {return this.nextNodef; } node publik (nama string) {this.name = name; this.nextNode = null; } node publik () {}}1. Membangun simpul simpul membutuhkan dua pointer, satu untuk menyimpan posisi elemen berikutnya dan yang lain untuk menyimpan kembali posisi elemen berikutnya.
Deskripsi Parameter:
Nama: Digunakan untuk menyimpan informasi node sendiri
NextNode: Digunakan untuk menyimpan pointer ke depan
NextNodef: Digunakan untuk menyimpan pointer terbalik
Node kelas {name string privat; Node Private NextNode; node pribadi nextnodef; public void setName (nama string) {this.name = name; } public void setNextNode (node nextNode) {this.nextNode = nextNode; } public void setNextNodef (node nextNodef) {this.nextNodef = nextNodef; } public string getName () {return this.name; } node publik getNextNode () {return this.nextNode; } node publik getNextNodef () {return this.nextNodef; } node publik (nama string) {this.name = name; this.nextNode = null; } node publik () {}}2. Buat node dan atur pointer untuk terhubung ke node
Forward Pointer: Arahkan ke simpul berikutnya
Node terbalik: Arahkan ke simpul sebelumnya
// Bangun daftar simpul statis yang ditautkan tunggal node1 = node baru ("name1"); node statis node2 = node baru ("name2"); node statis node3 = node baru ("name3"); node node statis4 = node baru ("name4"); simpul statis node5 = node baru ("name5"); public static void setPoint () {// atur pointer forward node1.setNextNode (node2); node2.setNextNode (node3); node3.setNextNode (node4); node4.setNextNode (node5); // atur reverse pointer node5.setNextNodef (node4); node4.setNextNodef (node3); node3.setNextNodef (node2); node2.setNextNodef (node1); }3. Loop daftar yang ditautkan melalui output
public static void outlinked (node startNode) {node node = new node (); node.setNextNode (startNode); do {node = node.getNextNode (); System.out.print (node.getName ()+"----"); } while (node.getNextNode ()! = null); } public static void outlinkedf (node endnode) {node node = new node (); node.setNextNodef (endnode); do {node = node.getNextNodef (); System.out.print (node.getName ()+"----"); } while (node.getNextNodef ()! = null); }4. Tambahkan node
public static void addNode (node prenode, node nextNode) {node node_add = node node ("name2.5"); node_add.setNextNode (prenode.getNextNode ()); prenode.setNextNode (node_add); node_add.setNextNodef (nextNode.getNextNodef ()); nextNode.setNextNodef (node_add); }5. Hapus node
node2.setNextNode (node3); node3.setNextNodef (node2);
Di atas adalah semua konten artikel ini. Saya berharap ini akan membantu untuk pembelajaran semua orang dan saya harap semua orang akan lebih mendukung wulin.com.