السلام عليكم
كيف أحوالكم يا شباب
إن شاء الله بخير
اليوم سينضم إلى فصلنا شخصية جديدة فأرجوا أن ترحبوا به
اسمه عبده أحياناً بناديه عبود
على العموم الأخ عبده شخصية عرضية comparese
(الشخصية العرضية أسلوب أدبي يحاول تلطيف المقالات العلمية)
ممكن أن تروه في أي مكان
مؤدب وشاطر وبيسمع الكلام
أتمنى أن تعاملوه بشكل جيد لأنه ممكن يزعل بسرعة
وساعتها ما تقولوا إني ما قولتلكم أنه بيزعل
بعد أن تم التعارف بينكم
نبدأ في درسنا الجديد
نريد بناء دالة تحول السلسلة إلى مصفوفة
بالطبع يجب أن يكون لدينا علم مسبق بطول السلسلة
يمكننا فعل ذلك في نفس الدالة
ستكون الدالة على الشكل التالي
public Object[] listToArray(){ SNode temp=head; int length=0; while(temp.getNext() !=null){ ++length; temp=temp.getNext(); } temp=head; Object array[]=new Object[length]; for(int i=0;iنلاحظ أننا في كل مرة أننا نتكبد مشقة حساب طول السلسلة
لماذا لا نرتاح من هذا الموضوع
كيف يا أستاذ ؟؟(الأخ عبده بيحاول يكون مجتهد)
انتظر يا عبده حتى أكمل شرحي
راح نحتاج متغير اسمه length
في بداية ما ننشئ السلسلة سيساوي صفر
ما تأثير الزيادة والنقصان في السلسلة على قيمة المتغير؟
الزيادة تعني زيادة القيمة في المتغير length بواحد
والنقصان يعني نقصان القيمة في المتغير length بواحد
تصبح الدالة listToArray بالشكل التاليpublic Object[] listToArray(){ SNode temp=head; Object array[]=new Object[length]; for(int i=0;iموضوع الحلقات الرأس والذيل
ألا تجدون معي أنه متعب جداً
وهناك مقارنات كثيرة
هناك طريقة تخلصنا من هذا العناء
لكنها ستكلفنا كائنين من النوع SNode
ليست كلفة عالية كما يظهر
تعالوا نستكشف الطريقة الجديدة
سنقوم بعمل الحلقتين كالتاليSNode head=new SNode(null,null); SNode tail=new SNode(null,null); head.setNext(tail);الآن عندما أريد أن أضيف حلقة جديدة في بداية السلسلة سأقوم بالتالي
SNode newNode=new SNode(object,head.getNext()); head.setNext(newNode);وعملية الحذف من البداية ستكون بنفس السهولة
Object obj=head.getNext().getElement(); head.setNext(head.getNext().getNext()); return obj;بالنسبة للذيل نجد أننا سنواجه مشكلة ماهي؟(سؤال إضافي من علامتين)
سأتكلم عنها في المرة القادمةتحياتي
م.علاء
كيف اكتب هيكل بياني لل (Deleting anode from any position in double linked list) ولكم جزيل الشكر
غير واضح السؤال