يشارك هذا المثال الكود المحدد لـ Java لتنفيذ انعكاس قائمة مرتبطة أحادي الاتجاه بالرجوع إليه. المحتوى المحدد كما يلي
1. تنفيذ الكود
الفئة العامة LinkedListTest {public static void main (string [] args) {node a = new node ("a") ؛ العقدة B = عقدة جديدة ("B") ؛ العقدة C = عقدة جديدة ("C") ؛ العقدة D = New Node ("D") ؛ العقدة e = عقدة جديدة ("e") ؛ العقدة f = عقدة جديدة ("f") ؛ A.Next = b ؛ B.Next = C ؛ c.next = d ؛ D.Next = e ؛ e.next = f ؛ طباعة (أ) ؛ LinkedListReversor Respertor = LinkedListReversor.Recursion ؛ System.out.println (reversor.getStrategy () + ":") ؛ Node TMP = Reversor.execute (a) ؛ طباعة (TMP) ؛ عكس = linkedListReversor.no_recursion ؛ System.out.println (reversor.getStrategy () + ":") ؛ print (reversor.execute (TMP)) ؛ } private static void print (node node) {while (node! = null) {system.out.print (node.value) ؛ العقدة = node.next ؛ if (node! = null) {system.out.print ("->") ؛ } آخر {system.out.println () ؛ }}}}}} class node {public string value ؛ العقدة العامة المقبل ؛ العقدة العامة (قيمة السلسلة) {this.value = value ؛ }} enum linkedListReversor {recursion ("recursion") {Override public node execute (node node) {node prev = null ؛ if (node == null || node.next == null) {prev = node ؛ } آخر {node tmp = execute (node.next) ؛ node.next.next = node ؛ node.next = null ؛ PRED = TMP ؛ } إرجاع السابق ؛ }} ، no_recursion ("غير متكرر") {Override public node execute (node node) {node prev = null ؛ بينما (العقدة! = null) {node tmp = node ؛ العقدة = node.next ؛ tmp.next = prev ؛ PRED = TMP ؛ } إرجاع السابق ؛ }} ؛ إستراتيجية سلسلة خاصة ؛ private LinkedListReversor (String Strategy) {this.strategy = strategy ؛ } تنفيذ العقدة المجردة العامة (عقدة العقدة) ؛ السلسلة العامة getTrategy () {return strategy ؛ }}2. أفكار التنفيذ
العودية: بدءًا من الذيل
غير متكرر: ابدأ في المعالجة من الرأس
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.