الصفوف و المكدس المذدوج في ++C
الصفوف
يختلف الصف عن المكدس في أن الأخير يعمل بنظام المدخل أخيرا مخرج أولا (Last in-First out ''LIFO'') ولذلك يشبه برصة الأطباق في المطاعم , ما يوضع منها أخيرا هو ما يسحب منها أولا . في حين أن الصف كما تعرفه يسير بمفهوم أن الداخل أولا هو الخارج اولا (First in-First out ''LIFO'') ] إذا افترضنا احترام النظام[
والجدول التالي يعطي دوال الفئة TQueueAsVector , وأهمها get التي تخرج العنصر من بداية الصف و put التي تضيف عنصرا في نهايته .
جدول دوال الفئة TQueueAsVector
الدالة | الغرض منها |
FirstThat | تعيد مؤشرا لأول كائن يحقق شرطا وضعه المبرمج |
Flush | إزالة كافة العناصر |
ForEach | تنفيذ عملية علي كافة العناصر |
Get | إزالة من مقدمة الصف |
GetItemsInContainer | تعيد عدد العناصر |
IsEmpty | تعيد 1 في حالة الخلو |
IsFull | تعيد 1 في حالة الامتلاء |
LastThat | تبحث عن كافة العناصر التي تحقق شرطا ما |
Put | إضافة عند المؤخرة |
وإليك مثالا تطبيقيا علي هذا النوع من هياكل البيانات :
Quaint.cpp
// queint.cpp
// demonstrates TQueueAsVector class
#include <classlib\queues.h>
#include <iostream.h>
void main()
{
TQueueAsVector<int> quint;
quint.Put(101);
quint.Put(102);
quint.Put(103);
while( !quint.IsEmpty() )
cout << quint.Get() << endl;
}
المكدس المزدوج
المكدس المزدوج يتيح لك الدخول من أي من النهايتين , والخرج من أيهما أيضا (يمكن تشبيه الوضع بلاعب ورق غشاش) . ودوال الفئة TDequeAsVector التي يتيح التعامل مع هذا النوع من حاويات البيانات مبينة في جدول كما يبين الشكل تصويرا له ويجري العرف علي اعتبار أن النهاية اليسري تعتبر المقدمة واليمني تعتبر المؤخرة .
جدول دوال الفئة TDequeAsVector
الدالة | الغرض منها |
FirstThat | تعيد مؤشرا لأول كائن يحقق شرطا ما إزالة كافة العناصر |
Flush | تنفيذ عملية علي كافة العناصر |
ForEach | تعيد عدد العناصر |
GetItemsInContainer | سحب عدد العناصر |
GetLeft | سحب عنصر من يسار مؤخرة الصف |
GetRight | سحب عنصر من يمين مؤخرة الصف |
IsEmpty | تعيد 1 في حالة الخلو |
IsFull | تعيد 1 في حالة الامتلاء |
LastThat | تبحث عن كافة العناصر التي تحقق شرطا ما |
PeekLeft | تعيد العنصر علي يسار المؤخرة دون إزالته |
PeekRight | تعيد العنصر علي يمين المؤخرة دون إزالته |
PutLeft | إضافة إلي يسار المؤخرة |
PutRight | إضافة إلي يمين المؤخرة |
وإليك المثال التطبيقي :
Dequint.cpp
// dequint.cpp
// demonstrates TDequeAsVector class
#include <classlib\deques.h>
#include <iostream.h>
void main()
{
TDequeAsVector<int> dint;
dint.PutLeft(11);
dint.PutLeft(12);
dint.PutLeft(13);
dint.PutRight(21);
dint.PutRight(22);
dint.PutRight(23);
while( !dint.IsEmpty() )
cout << dint.GetLeft() << endl;
}
تعليقات
إرسال تعليق