Java تنفذ وظيفة إضافة وحذف القوائم المرتبطة ثنائية الاتجاه ، رمز كامل
حزمة مرتبطة ؛ class linkedTable {} class public linkedTableTest {// إنشاء قائمة واحدة مرتبطة node1 = node node ("name1") ؛ node node2 = node node ("name2") ؛ Node Node3 = New Node ("Name3") ؛ Node Node4 = New Node ("Name4") ؛ Node Node5 = New Node ("Name5") ؛ public static void main (string [] args) {// set pointer setPoint () ؛ // loop من خلال system.out.println ("******* القائمة المرتبطة الأولية **********") ؛ خارج (node1 ، node5) ؛ system.out.println () ؛ // insert node خلف node2 addNode (node2 ، node3) ؛ // loop من خلال system.out.println ("******* insert node2.5 *********") ؛ خارج (node1 ، node5) ؛ system.out.println () ؛ // delete node node2.setNextNode (node3) ؛ node3.setNextNodef (node2) ؛ // loop من خلال system.out.println ("******* حذف node2.5 *******") ؛ خارج (node1 ، node5) ؛ system.out.println () ؛ }. node2.setNextNode (node3) ؛ node3.setNextNode (node4) ؛ node4.setNextNode (node5) ؛ // تعيين عكس المؤشر node5.setNextNodef (node4) ؛ node4.setNextNodef (node3) ؛ node4.setNextNodef (node3) ؛ node3.setNextNodef (node2) ؛ node2.setNextNodef (node1) ؛ } // حلقة من خلال القائمة المفردة المرتبطة الفراغ الثابتة الثابتة المترتبة (node startNode) {node node = new node () ؛ node.setNextNode (startNode) ؛ do {node = node.getNextNode () ؛ System.out.print (node.getName ()+"----") ؛ } بينما (node.getNextNode ()! = null) ؛ } // بشكل عكسي من خلال القائمة المفردة المرتبطة الفراغ الثابتة الساكنة outlinkedf (node endnode) {node node = new node () ؛ node.setNextNodef (endnode) ؛ do {node = node.getNextNodef () ؛ System.out.print (node.getName ()+"----") ؛ } بينما (node.getNextNodef ()! = null) ؛ } // loop من خلال الفراغ الثابت العام (node startNode ، node endnode) {outlinkind (startNode) ؛ system.out.println () ؛ Outlinkedf (endnode) ؛ } // insert node public static addnode (node prenode ، node nextNode) {node node_add = new 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 ؛ عقدة خاصة NextNode ؛ عقدة خاصة NextNodef ؛ public void setName (اسم السلسلة) {this.name = name ؛ } public void setNextNode (node nextNode) {this.nextNode = nextNode ؛ } public void setNextNodef (node nextNodef) {this.nextNodef = nextNodef ؛ } السلسلة العامة getName () {return this.name ؛ } العقدة العامة getNextNode () {return this.nextNode ؛ } العقدة العامة getNextNodef () {return this.nextNodef ؛ } العقدة العامة (اسم السلسلة) {this.name = name ؛ this.nextNode = null ؛ } العقدة العامة () {}}1. يتطلب إنشاء عقدة عقدة مؤشرين ، أحدهما لتخزين الموضع للعنصر التالي والآخر لتخزين موضع العنصر التالي.
وصف المعلمة:
الاسم: يستخدم لتخزين معلومات العقدة الخاصة
NextNode: تستخدم لتخزين المؤشرات الأمامية
NextNodef: يستخدم لتخزين المؤشرات العكسية
فئة العقدة {اسم السلسلة الخاصة ؛ عقدة خاصة NextNode ؛ عقدة خاصة NextNodef ؛ public void setName (اسم السلسلة) {this.name = name ؛ } public void setNextNode (node nextNode) {this.nextNode = nextNode ؛ } public void setNextNodef (node nextNodef) {this.nextNodef = nextNodef ؛ } السلسلة العامة getName () {return this.name ؛ } العقدة العامة getNextNode () {return this.nextNode ؛ } العقدة العامة getNextNodef () {return this.nextNodef ؛ } العقدة العامة (اسم السلسلة) {this.name = name ؛ this.nextNode = null ؛ } العقدة العامة () {}}2. قم بإنشاء عقدة وضبط مؤشر للاتصال بالعقدة
المؤشر إلى الأمام: أشر إلى العقدة التالية
العقدة العكسية: أشر إلى العقدة السابقة
. node node2 = node node ("name2") ؛ Node Node3 = New Node ("Name3") ؛ Node Node4 = New Node ("Name4") ؛ Node Node5 = New Node ("Name5") ؛ public static void setPoint () {// قم بتعيين المؤشر الأمامي node1.setNextNode (node2) ؛ node2.setNextNode (node3) ؛ node3.setNextNode (node4) ؛ node4.setNextNode (node5) ؛ // قم بتعيين المؤشر العكسي node5.setNextNodef (node4) ؛ node4.setNextNodef (node3) ؛ node3.setNextNodef (node2) ؛ node2.setNextNodef (node1) ؛ }3. حلقة القائمة المرتبطة من خلال الإخراج
الفراغ الثابت العمومي المترابط (node startNode) {node node = new node () ؛ node.setNextNode (startNode) ؛ do {node = node.getNextNode () ؛ System.out.print (node.getName ()+"----") ؛ } بينما (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 ()+"----") ؛ } بينما (node.getNextNodef ()! = null) ؛ }4. إضافة العقد
public static void addNode (node prenode ، node nextNode) {node node_add = new node ("name2.5") ؛ node_add.setNextNode (prenode.getNextNode ()) ؛ prenode.setNextNode (node_add) ؛ node_add.setNextNodef (nextNode.getNextNodef ()) ؛ nextNode.setNextNodef (node_add) ؛ }5. حذف العقد
node2.setNextNode (node3) ؛ node3.setNextNodef (node2) ؛
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.