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

ترتيب linked list

مغلق
بدأه مبرمجة مبتدئة في 31 مارس 2005 · 4 رد · 1,011 مشاهدة · في ارشيف قسم C/C++
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم اعضاء المنتدى...

اذا تكرمتوا علي ....تعلموني وين المشكلة بكود الترتيب للــlinked list

والترتيب بــinsert sort

وهذا البرنامج:

#include <iostream.h>


struct node
{
	int num;
	node *next;
};



void  main ()
{

int i;
	node *ptr,*ptr2;


ptr=new node;
ptr->num=7;
ptr->next=NULL;

i=1;

ptr2=ptr;
cout<<"the element of linked list \n\n \n";

while(i<4)
{
	ptr2->next=new node;
	ptr2=ptr2->next;
	cout<<"\tthe NUM  :";
    cin>>ptr2->num;
    cout<<"\n";
    ptr2->next=NULL;
i++;

}


  
cout<<"The element of linked list before sorting:\n\n";
ptr2=ptr;

while(ptr2!=NULL)
{

	cout<<ptr2->num<<"\t";
	ptr2=ptr2->next;


}




ptr2=ptr;


i=1;

while(  (i<4)&&(ptr2!=NULL))
  {

  int  temp = ptr2->next->num;
    
   
    while((ptr2->num > temp) )
   
	{ ptr2->next->num = ptr2->num;

        	ptr2=ptr->next;

  
	}
          ptr->num = temp;
    break;


	i++;
  }










cout<<"\n\n";
  

cout<<"\n\nThe element of linked list after sorting:\n\n";

ptr2=ptr;

while(ptr2!=NULL)
{

	cout<<ptr2->num<<"\t";

	ptr2=ptr2->next;


}

cout<<"\n\n\n\n\n";

}

وهنا الكود الي فيه مشكلة:

ptr2=ptr;


i=1;

while(  (i<4)&&(ptr2!=NULL))
  {

  int  temp = ptr2->next->num;
    
   
    while((ptr2->num > temp) )
   
	{ ptr2->next->num = ptr2->num;

       	 ptr2=ptr->next;

  
	}
          ptr->num = temp;
    break;


	i++;
  }

واتمنى الي عنده معلومات كافية عن doubly linked list ,

,circil

يفيدني ..بايش ممكن استفيد منهم ويكونون اسهل من single

?

,,واكون شاكرة للجميع.

تم تعديل هذه المشاركة بواسطة مبرمجة مبتدئة في 31 مارس 2005 في 17:46

iwo3e5b2.gif

اللهم اغفر لجميع المسلمين والمسلمات الاحياء منهم والأموات.

#2

مرحبا اختي :)

انا مبتئه مثللك :) وعندي طريقه للترتيب(الترتيب التصاعدي والتنازلي)

هل هي الطريقه المقصوده :unsure: ولا طريقه ثانيه

تحياتي..... :)

#3

اهلين اختي...

مايهم طريقة الترتيب بس اناكاتبه لك الطريقة الي استعملتها عشان يكون اسهل الكود

بس اذا تقدري تعرفين لي وين المشكلة بكودي(لانه يرتب اول عنصرين بس)

واذا ماتقدري ...وضحي لي كيف ترتبينها بطريقة عادية.....

والف شكر خيتوو :)

iwo3e5b2.gif

اللهم اغفر لجميع المسلمين والمسلمات الاحياء منهم والأموات.

#4

مساء الخير ..

حياك الله أختي .. وروووقي شوي وأنتي تكتبين الكود .. لأني أشوفك حايسة حوس موب طبيعي :)

عموما .. ركزي معي في الكود اللي أنتي كاتبته :)

في منطقة الخطأ طبعا ..

ptr2=ptr;
i=1;
while(  (i<4)&&(ptr2!=NULL))
 {
 int  temp = ptr2->next->num;
while((ptr2->num > temp) )
{
 ptr2->next->num = ptr2->num;
 ptr2=ptr->next;
}
  ptr->num = temp;
   break;
i++;
 }

أولا .. انتي أخذتي رأس اللسته حقتك .. وحطيتيه في ptr2

وهذا الشي سويتيه في الجملة ptr2=ptr تمام !!

معناتها خلاص .. تنسين التعامل مع ptr وتشتغلين على الـ ptr2 لكن في نفس الكود أنتي رجعتي للـ ptr !!

وهذا الشي صار في هالجملة : ptr2=ptr->next

معناتها .. كل ماجيتي بتقدمين ptr2 للـnode اللي بعدها .. رجعتي لمكانها اللي هو بالأول !!

فكيف بتمشي الـ while !!

هذا أولا .. ثانيا ..

في التعامل مع الـ Linked List أنتبهي أنتبهي أنتبهي .. وحطي تحتها طرطعش خط أحمر .. في دخولك على مناطق الذاكرة ..

انتي هنا تقولين :

while( (i<4) && (ptr2!=NULL))

تمام عليك .. النود ptr2 بيمشي ويمشي ويمشي لما يوقف على آخر نود ..

كلام جميل .. آخر نود ماراح يساوي الصفر .. بيدخل لللوب حقك ..

بيشوف وش انتي كاتبه فيه !!

خلينا نشوف وش سويتي .. ( لاحظي أن النود اللي واقفين عليه آخر نود أي ptr2->next=0 )

دخلنا اللوب .. نشوف :

1- int temp = ptr2->next->num

ماتحسين أنتي هنا بتغيرين شي ماهو موجود أصلا ! .. إذا الـptr2 واقفه على آخر نود ! .. ونكست لها مساوية للصفر !

وين بتحصلين num لصفر !!

بيعطيك خطأ .. ويطلّع لك خطأ الويندز المعروف :)

2- ptr2->next->num = ptr2->num

نفس الحاله !

إذاً .. انتي هنا دخلتي على منطقة مو مصرح لك دخولها ..

ولهذا السبب .. أرجعي فكري في الكود ورتبية ببالك صح :rolleyes:

وبعدين .. حاولي في الـ sort توقفين على النود ماقبل الأخير .. يعني أستخدمي في الـ while الشرط هذا : ( ptr2->next != 0 )

بكذا بتسهل عليك .. بس انتبهي لأطراف اللستة لا تنسينهم :)

تحياتي ..

ما كتبت الحل كامل علشان تفكرين فيه ..

وأتمنى إن كنت أخطيت في حاجة يصححون لي الأخوان .. تراني مجرد طالب مستوى أول :wacko:

يعني مبتديء :(

وسيع صدر

#5

مرحبااااااااااااااا يالغاليه :)

انا اعطيتك كل البرنامج لاني ملاحظه ان برنامجك مختلف عن برنامجي شوي :unsure:

وان شاء الله تفهميه :)

تحياتي......

include.doc

هذا الموضوع مغلق.

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