قوائم مرتبطة مزدوجة لماذا لا يمكن إزالة العنصر الأول

StackOverflow https://stackoverflow.com//questions/9708924

سؤال

أنا جميلة "أخضر" في البرمجة ولدي إحضار المهمة غدا.انها كاملة تقريبا ولكن هناك مشكلة طفيفة.لا يمكنني إزالة العنصر الأول وإذا كان بعد محاولة حذف العنصر الأول، فأنا مدخل واحدة جديدة في مكانها ط ط ط .... دعنا نقول فقط إدخال العديد منهم بلا حدود بدلا من ذلك.لا أستطيع أن أجد ما هي المشكلة.شكرا مقدما

giveacodicetagpre.

هل كانت مفيدة؟

المحلول

p>

href="http://en.wikipedia.org/wiki/doubly_linked_list#removing_a_node" rel="nofollow"> http://en.wikipedia.org/wiki/doubly_linked_list#removing_a_node / ص>

إزالة العقدة أسهل من الإدراج، ولكن يتطلب معالجة خاصة إذا كانت العقدة المراد إزالتها هي الأولى أو lastnode:

giveacodicetagpre.

نتيجة خفية واحدة للإجراء أعلاه هو أن حذف العقدة الأخيرة من القائمة تعدد كلا من firstnode و lastnode إلى NULL، وبالتالي فإنه يتعامل مع إزالة العقدة الأخيرة من قائمة عنصر واحد بشكل صحيح.

لاحظ أننا لا نحتاج أيضا إلى أساليب "إزالة" أو "إزالة" منفصلة، لأنه في قائمة مرتبطة مضاعفة يمكننا فقط استخدام "إزالة (node.prev)" أو "إزالة (node.next)" أين هذهصالحة.

يفترض ذلك أيضا أن العقدة التي تتم إزالتها مضمونة موجودة.

إذا كانت العقدة غير موجودة في هذه القائمة، فستكون هناك حاجة إلى بعض معالجة الأخطاء.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top