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

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

الصف 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

يعيد العنصر الموجود في مقدمة الرتل مع عدم حذفه.

لا تنسونا من دعائكم,,

One thought on “المكدس والرتل Stack & Queue

أضف تعليقاً

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s