تشارك هذه المقالة الكود ذي الصلة لـ Java لتنفيذ قوائم متصلة واحدة وقوائم مرتبطة في اتجاهين للرجوع إليها. المحتوى المحدد كما يلي
Java تنفذ قائمة واحدة مرتبطة:
رمز الحزمة ؛ Class Node {Node Next ؛ بيانات int ؛ العقدة العامة (int data) {this.data = data ؛ }} class linklist {node first ؛ // Head Public LinkList () {this.first = null ؛ } public void addNode (node no) {no.next = first ؛ أولاً = لا ؛ // إضافة في الرأس} public void delectnode () {node n = first.next ؛ أولا = فارغ ؛ أولاً = n ؛ // حذف في الرأس} // حذف الموضع المحدد العام int int () {int count = 1 ؛ // انظر كم عدد العناصر هناك عقدة nd = أولاً ؛ بينما (nd.next! = null) {nd = nd.next ؛ count ++ ؛ } عدد العائد ؛ } public void delectexact (int n) {// حذف الموضع المحدد إذا (n> 1) {int count = 1 ؛ عقدة de = الأول ؛ بينما (العد <n-1) {de = de.next ؛ count ++ ؛ } de.next = de.next.next ؛ } آخر أولاً = first.next ؛ } public void addExact (int n ، node nd) {if (n> 1) // أضف الموضع المحدد {int count = 1 ؛ عقدة de = الأول ؛ بينما (العد <n-1) {de = de.next ؛ count ++ ؛ } nd.next = de.next ؛ de.next = nd ؛ } آخر أولاً = first.next ؛ } public int findNode (int n) {int count = 1 ؛ // أوجد الموضع المقابل لعقدة الأرقام de = first ؛ بينما (de.data! = n) {de = de.next ؛ count ++ ؛ if (de == null) {return -1 ؛ }} عدد الإرجاع ؛ } public void print () {node no = first ؛ // print all بينما (no! = null) {system.out.println (no.data) ؛ لا = رقم next ؛ }}} الفئة العامة textNode {public static void main (string [] args) {linklist ll = new linklist () ؛ ll.addnode (عقدة جديدة (12)) ؛ ll.addnode (عقدة جديدة (15)) ؛ ll.addnode (New Node (18)) ؛ ll.addnode (New Node (19)) ؛ ll.addnode (عقدة جديدة (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 ، عقدة جديدة (100)) ؛ system.out.println (ll.number ()) ؛ // ll.print () ؛ System.out.println (ll.findnode (112)) ؛ }}Java تنفذ قائمة مرتبطة في اتجاهين:
الفئة العامة doubleLink {public static void main (string [] args) {node2 no = new node2 (5) ؛ No.Addleft (node2 (6)) ؛ رقم Addright (Node2 (7)) ؛ /*no.print () ؛ No.Print2 () ؛*/ No.AdDexAct2 (1 ، New Node2 (8)) ؛ No.Print () ؛ System.out.println ("-------------------") ؛ No.Print2 () ؛ }} class node2 {public node2 first ؛ نهاية Node2. غادر Node2 العام ؛ NODE2 الحق ؛ بيانات int = 0 ؛ node2 (int n) {first = this ؛ نهاية = هذا ؛ first.data = n ؛ } // أضف void public من addleft addleft (node2 قبل) {first.left = قبل ؛ قبل. رايت = أولا ؛ أولا = قبل ؛ } // إضافة void public من tail addright (node2 بعد) {end.right = بعد ؛ بعد. left = نهاية ؛ نهاية = بعد ؛ } // أدخل عدد AddExact public void (int n ، node2 no) {int count = 0 ؛ if (n == 0) {addleft (no) ؛ } آخر {node2 f = first ؛ بينما (صحيح) {f = f.right ؛ count ++ ؛ if (count == n) {// هذا هو التغيير في الإشارة إلى المؤشرات الأربعة رقم Left = f.left ؛ F.Left.Right = لا ؛ // first.left = لا ؛ رقم / رايت = و ؛ F.Left = لا ؛ استراحة؛ }}}}} // أدخل عدد الفراغ العام addExact2 (int n ، node2 no) {int count = 0 ؛ if (n == 0) {addright (no) ؛ } آخر {node2 f = end ؛ بينما (صواب) {f = f.left ؛ count ++ ؛ if (count == n) {no.left = f ؛ رقم / رايت = F.Right ؛ f.right.left = لا ؛ F.Right = لا ؛ استراحة؛ }}}}} // public void print () {system.out.println (first.data) ؛ بينما (first.right! = null) {system.out.println (first.right.data) ؛ أولا = الأول. } // system.out.println (end.data) ؛ } // عكسي الترتيب التجاري public print2 () {system.out.println (end.data) ؛ بينما (end.left! = null) {system.out.println (end.left.data) ؛ نهاية = end.left ؛ }}}/*تجدر الإشارة إلى أنه في كل مرة يتم فيها إدخال كائن جديد ، تحتاج إلى الانتباه إلى تغيير مؤشر توجيه. أولاً ، يشير إلى جانبي هذا الكائن الجديد (الأيسر واليمين) ، يليه الإشارة إلى الكائن الأيسر إلى اليمين وإشارة الكائن الأيمن إلى اليسار. يجب أن يكون الإشارة إلى هذه المؤشرات الأربعة صحيحة ، وإلا فقد يؤدي ذلك إلى عدم القدرة على تنفيذ اجتياز الترتيب الإيجابي أو العكسي. *//*قارن القوائم المرتبطة الفردية ، لا يمكن اجتياز قوائم واحدة مرتبطة إلا من اتجاه واحد لأن هناك رأسًا واحدًا فقط ، في حين أن قائمة مرتبطة ثنائية الاتجاه لها رأس وذيل. يمكن اجتيازها من * الرأس أو من الذيل. علاوة على ذلك ، نظرًا لأن أحد الكائنات له مؤشرات في اتجاهين ، يمكنه الحصول على الكائن * على اليسار والكائن الموجود على اليمين. * ولكن بالنسبة للقوائم المرتبطة الواحدة ، لأنه لا يوجد سوى اتجاه واحد ، لا يمكن أن يذهب إلى اليسار أو اليمين فقط. عند إضافة كائنات ، يمكنك أيضًا إضافتها من البداية أو من النهاية. * إذا كانت القائمة المرتبطة واحدة تحتاج إلى إضافة اتجاهين ، فهي نادرة ، أم لا ، لأنها تحتوي فقط على مؤشرات إلى اتجاه واحد إلى اليسار أو اليمين* ، في حين أن كل كائن من قائمة مرتبطة ثنائية الاتجاه له مؤشرات إلى اتجاهين ، وهو أمر غير مرن أكثر ، ولكن هذا له أيضًا عيوب ، لأنه بهذه الطريقة سيحتوي كل كائن* على اثنين من الحشائش ، والتي ستتطلع أيضًا إلى المزيد من الذاكرة. * * */ما سبق هو كل شيء عن هذا المقال ، آمل أن يكون من المفيد للجميع تعلم برمجة Java.