المكدس والرتل Stack & Queue
أكتوبر 9, 2010 عند 12:46 ص | أرسلت فى عام | تعليق واحدالأوسمة: Queue, Stack, مكدس, رتل
العمل مع القوائم المتسلسلة
الصف Queue(الرتل):
هذا الصف هو أحد صفوف فضاء الأسماء System.Collections يعتمد هذا الصف على القاعدة (FIFO: First In First Out) أي ما يدخل أولا من العناصر يخرج أولا (تماما مثل أي رتل نظامي)، فيقدم هذا الصف آليه سهلة بل سهلة جدا لإدخال العناصر وفق الرتل وإخراجهم من ضمن الرتل، أهم خصائص هذا الصف وإجراءاته تجدهما في الجدولين التالين:
| اسم الخاصية | الوصف |
| Count | يعطي عدد العناصر الموجودة ضمن الرتل |
.
| اسم الاجراء | الوصف |
| Dequeue | يعيد أول عنصر موجود في مقدمة الرتل مع حذفه منها في الوقت نفسه. |
| Enqueue | إضافة عنصر إلى نهاية الرتل |
| Peek | يعيد العنصر الموجود في مقدمة الرتل مع عدم حذفه |
المثال التالي يوضح مدى سهولة استعمال هذا الصف:
Queue q = new Queue();
q.Enqueue(“An item”);
Console.WriteLine(q.Dequeue());
يسمح لك هذا الصف بإدخل قيم مكررة أو قيم null، وتستطيع أيضا إختبار الرتل لمعرفة أنه قد فرغ أو لا، لاحظ المثال التالي:
Queue q = new Queue();
q.Enqueue(“First”);
q.Enqueue(“Second”);
q.Enqueue(“Third”);
q.Enqueue(“Fourth”);
while (q.Count > 0)
{
Console.WriteLine(q.Dequeue());
}
الصف Stack (المكدس):
هذا الصف شبيه بسابقة إلا أنه يعتمد على قاعدة (LIFO: last-in, first out) العنصر الذي دخل آخرا يخرج أولا، فهذا الصف يسمح بتنفيذ العديد من العمليات السهلة على المكدس من دفع إلى قمة المكدس وسحب العناصر أيضا، لاحظ الجداول التالية:
| اسم الخاصية | الوصف |
| Count | الحصول على عدد العناصر الموجودة في المكدس. |
.
| اسم الاجراء | الوصف |
| Pop | يعيد العنصر الموجود من قمة المكدس وبنفس الوقت يقوم بحذفه من قمة المكدس. |
| Push | يقوم بإدخال عنصر إلى قمة المكدس. |
| Peek | يعيد العنصر الموجود في قمة المكدس مع عدم حذفه. |
المثال التالي يبين سهولة التعامل مع المكدس:
Stack s = new Stack();
s.Push(“An item”);
Console.WriteLine(s.Pop());
لاحظ أيضا هذا المثال:
Stack s = new Stack();
s.Push(“First”);
s.Push(“Second”);
s.Push(“Third”);
s.Push(“Fourth”);
while (s.Count > 0)
{
Console.WriteLine(s.Pop());
}
سينتج مايلي:
Fourth
Third
Second
First
<!–[if gte mso 9]> <![endif]–><!–[if gte mso 9]> Normal 0 false false false EN-US X-NONE AR-SA <![endif]–><!–[if gte mso 9]> <![endif]–> <!–[endif]–>
|
اسم الاجراء |
الوصف |
|
Dequeue |
يعيد أول عنصر موجود في مقدمة الرتل مع حذفه منها في الوقت نفسه. |
|
Enqueue |
إضافة عنصر إلى نهاية الرتل. |
|
Peek |
يعيد العنصر الموجود في مقدمة الرتل مع عدم حذفه. |
لا تنسونا من دعائكم,,
تعليق واحد »
خلاصة "RSS" للتعليقات على هذه التدوينة. عنوان التتبع
اترك رد
المدونة لدى WordPress.com. | Theme: Pool by Borja Fernandez.
المدخلات و تعليقات feeds.
اشكرك بس ما الفائدة من Queue تستخدم في ماذا >>>>
Comment by ابراهيم يس— أكتوبر 23, 2010 #