المكدس والرتل Stack & Queue

أكتوبر 9, 2010 عند 12:46 ص | أرسلت فى عام | تعليق واحد
الأوسمة: , , ,

العمل مع القوائم المتسلسلة

الصف 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" للتعليقات على هذه التدوينة. عنوان التتبع

  1. اشكرك بس ما الفائدة من Queue تستخدم في ماذا >>>>


اترك رد

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / تغيير )

Twitter picture

You are commenting using your Twitter account. Log Out / تغيير )

Facebook photo

You are commenting using your Facebook account. Log Out / تغيير )

Connecting to %s

المدونة لدى WordPress.com. | Theme: Pool by Borja Fernandez.
المدخلات و تعليقات feeds.

Follow

Get every new post delivered to your Inbox.