الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

اسألة اريد اجابتها في ال Double Linked List ( ضروري جدا )

بدأه عرش اليوفي في 2 أغسطس 2009 · 7 رد · 1,432 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

عندي أسألة في double linked list في ++c لم استطع الاجابة عنها فأيا منكم يعرف حلول لأي أسألة فل يفيدوني بأسرع وقت والأسئلة هي :

بفرض اني عملت الـ double linked list

اود ان :

1- اضيف node بعد الـ node اللي فيه 30

2- مسح أول node

3- مسح النود الذي قبل الـ node اللي فيه 30

4- حساب عدد الـ nodes فيه

5- حساب عدد الـ nodes اللي أكبر من 10

6- حساب عدد الـ nodes الفردية و الزوجية !!

7- طباعة الـ nodes من الاخير الى الأول ( يعني بالعكس )

8- تقسيم الـ nodes الى قسمين , الأول المؤشر ماله اسمه list و الثاني head و يكون التقسيم عند الـ node رقم 15

الختام سلام

و انتظر على احر من الجمر

#2

السلام عليكم ورحمة الله وبركاته

أردت الاستفسار عن بعض الأمور

( اضيف node بعد الـ node اللي فيه 30) هل تقصد النود اللي يحوي الرقم 30 أو النود رقم 30 ؟؟؟؟

(حساب عدد الـ nodes اللي أكبر من 10) هل تقصد عدد النود اللي بعد النود اللي تحوي الرقم 10 أو عدد النود اللي بعد النود رقم 10 ؟؟؟؟؟؟

(حساب عدد الـ nodes الفردية و الزوجية !! ) هل تقصد عدد النود اللي تحوي أرقام فردية (زوجية) داخلها أو عدد النود اللي رقمها فردي(زوجي) ؟؟؟؟؟؟

programmerssu3.gif
#3

أتوقع والله أعلم بالنسبة للطلب الأول وهو الإضافة هذا الكود

لكن أتمنى من أحد الأعضاء تأكيده لأنني كتبته على عجل


{

Node p, *q;

q=head;

p=new Node;

p -> setData(data);

while(q ->getData() != 30)
{
q = q->getNext();
}

p ->setNext( q->getNext() );

q->setNext(p);

p->setPrev(q);

p ->getNext() -> setPrev(p);

}
void insertNode(int data)

programmerssu3.gif
#4

بالنسبة للطلب الثاني مسح أول نود


{ // مسح أول node

Node *p;

p=head;

p= p ->getNext();

head ->setNext(p ->getNext());

p ->getNext() -> setPrev(head);

delete p;

count --;

}
void DeleteFirstNode()

فيني النوم أكمل بكرة إن شاء الله إذا لم يسبقني أحدهم للحل

programmerssu3.gif
#6
sar0o0na كتب:
السلام عليكم ورحمة الله وبركاته

أردت الاستفسار عن بعض الأمور

( اضيف node بعد الـ node اللي فيه 30) هل تقصد النود اللي يحوي الرقم 30 أو النود رقم 30 ؟؟؟؟

(حساب عدد الـ nodes اللي أكبر من 10) هل تقصد عدد النود اللي بعد النود اللي تحوي الرقم 10 أو عدد النود اللي بعد النود رقم 10 ؟؟؟؟؟؟

(حساب عدد الـ nodes الفردية و الزوجية !! ) هل تقصد عدد النود اللي تحوي أرقام فردية (زوجية) داخلها أو عدد النود اللي رقمها فردي(زوجي) ؟؟؟؟؟؟

سؤالج الاول : اللي داخله 30

سؤالج الثاني و الثالث : اللي رقمها

و مشكوورة على الاجابتين

اتمنى تفيديني باللي تعرفينه أكثر

MoHammaD_93 كتب:

تسلم والله على المجهود بس ما فيهم اللي ابيه :(

تم تعديل هذه المشاركة بواسطة عرش اليوفي في 2 أغسطس 2009 في 13:29

#7

السلام عليكم ورحمة الله وبركاته

هذا اللي أعرفه الباقي ما عرفت له


void delete()
{ // مسح النود الذي قبل الـ node اللي فيه 30

Node *p, *q;

p=head;

while(p ->getData() != 30)
{

p = p->getNext();

}

p-> setPrev(q);

p-> setPrev(q->getPrev());

q->getPrev() ->setNext(p);

delete q;

count --;

}

//--------------------------------------------

int getCounter()
{ //ساب عدد الـ nodes فيه
return count;

}

//------------------------------------------

void Print()
{ //طباعة الـ nodes من الاخير الى الأول ( يعني بالعكس )

Node *p;

p=head;

while(p != NULL)
{

p = p->getNext();

}

cout<<p ->getData()<<endl;

while(p != head)
{

cout<<p ->getData()<<endl;

p= p ->getPrev();

}

}

بالنسبة لـ (حساب عدد النود اللي أكبر من 10 ) فأتوقع تسوي لووب إلى ما توصل إلى أن الكاونت (العداد ) يساوي 10 بعدين تبدا تحسب كم نود موجود بعدها

أما الباقي مدري

وبس ... إن شاء الله يكون صحيح

programmerssu3.gif
#8

ما قصرتي تسلمين

مواضيع مشابهة