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

priority Queue

مغلق
بدأه الدنيا حلوة في 9 مايو 2012 · 7 رد · 4,259 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اريد مساعده بالحصول على مثال بسيط يشرح priority Queue في Data structure ؟؟؟

او مرجع عربي يشرح الموضوع

#2

أخى أهلا وسهلا بك فى المنتدى

طيب الله مسائك ونولك منالك.

أخيية يوجد بأسفل مربع بحث جوجل

فضلا أكتب به priority Queue أو طوابير البيانات ذات الاولوية

وابشر كل النتائج بموقع باللغة العربية ستجد أمثلة واسئلة وشروحات وغيرها

وايضا راجع:

فهرس الدروس

فهرس قسم لغة السي وسي++

تقبل مرورى والله ولى التوفيق

post-15367-027053900%201340345097.gifpost-15367-087183200%201340344597.gif
post-247365-0-10080400-1379403554_thumb.

#3

الصراحه قرأت كثيرا ولكن لم اصل لنتيجه

أنا أريد تصميم (periority Queue (array implementation

بحيث يقوم المستخدم بإدخال العناصر والالويه لكل عنصر ثم يقول البرنامج بطباعه عناصر الـ Queue بناء على الالويات (الاعلى اولويه يطبع أولا)

وهذه بدايه البرنامج

Struct queue{
Int element[20], priority[20]; 
Int top;
};

أتمنى المساعده ..

#4

اي مساعده !!!!

#5

أخي بداية البرنامج ليس كما ذكرت فالبنية يجب أن تكون كما يلي .. :

struct element
{
int value;
int priority;
};
//والآن يمكنك إنشاء مصفوفة من نوع element
//كما يلي
#include<iostream.h>
void main()
{
element element_[20];
//وهكذا نقوم بإدخال العنصر مع أولويته كما يلي 
for(int i=0; i<20;i++)
{
cout<<"Enter "<<i<<"element :";
cin>>element_.value;
cout<<"Enter "<<i<<"priority :";
cin>>element_.priority;
}
//انتهى الإدخال والآن نقوم بالفرز حسب element_.priority
//بقي الآن موضوع فرز عناصر مصفوفة ... وينتهي البرنامج 
//هنا نكتب إحدى طرق الفرز التنازلي 
//والآن الخرج 
for(int j=0;j<20;j++)
cout<<element_[j].value<<endl;
}

هذه هي الفكرة باختصار وأرجو لك التوفيق

والسلام عليكم

تم تعديل هذه المشاركة بواسطة مصطفى 36a2 في 12 مايو 2012 في 18:57

1
#6
مصطفى 36a2 كتب:

أخي بداية البرنامج ليس كما ذكرت فالبنية يجب أن تكون كما يلي .. :

struct element
{
int value;
int priority;
};
//والآن يمكنك إنشاء مصفوفة من نوع element
//كما يلي
#include<iostream.h>
void main()
{
element element_[20];
//وهكذا نقوم بإدخال العنصر مع أولويته كما يلي 
for(int i=0; i<20;i++)
{
cout<<"Enter "<<i<<"element :";
cin>>element_.value;
cout<<"Enter "<<i<<"priority :";
cin>>element_.priority;
}
//انتهى الإدخال والآن نقوم بالفرز حسب element_.priority
//بقي الآن موضوع فرز عناصر مصفوفة ... وينتهي البرنامج 
//هنا نكتب إحدى طرق الفرز التنازلي 
//والآن الخرج 
for(int j=0;j<20;j++)
cout<<element_[j].value<<endl;
}

هذه هي الفكرة باختصار وأرجو لك التوفيق

والسلام عليكم

اشكرك جدا أخي الكريم

ولكن هل لك أن توضح لي الخطأ في البنيه التي كتبتها انا؟؟

#7

الفكرة هي أن تجعل قيمة العنصر واولويته في كتلة واحدة أليس كذلك ؟

هذا لا يتحقق إلا بأن نجعل قيمة العنصر وأولويته هما عنصران في بنية متكاملة ..

أما البنية التي كتبتها حضرتك تحوي عشرين عنصر وعشرين اولوية لا يوجد اي ارتباط بين العناصر وأولياتها ( أي أن البنية التي كتبتها لا تحقق مفهوم البنية المطلوب وهو التغليف أو الكبسلة )

وهناك فكرة أخرى هي أن ننشئ مصفوفة ذات بعدين عدد أعمدتها 2 واحد للقيثمة والآخر للأولوية . .. ثم نقوم بالفرز ...

ولكن يمكن دمج الشكلين بالبنية التالية ..

struct element
{
int value;
int priority;
};

struct queue{
element elements[20];
int top;
};

وبذلك تكون البنية التي كتبتها صحيحة بفارق بسيط .. أرجو أن يكون قد توضح

وأرجو أن تكون الفكرة بشكل عام قد توضحت والسلام عليكم

تم تعديل هذه المشاركة بواسطة مصطفى 36a2 في 12 مايو 2012 في 20:01

#8

جزاك الله ألف خير

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

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