أرجو منكم و بعد السلام ، مساعدتي في الخوارزمية العامة لما يسمى
stack ==> L.I.F.O. "last in, first out
ثم الكود بلغة السي ، بحيث أتمكن من ادخال مجموعة عناصر
push()
ثم طباعتها على شاشة الإخراج
view()
ثم عملية حذفها من الذاكرة
pop()
علما انني لا أريد استعمال المصفوفات بل التعليمة
malloc (sizeof ( .... ) )
لأتجنب تحديد عدد العناصر من ناحية ، و لأتمكن من عمل خوارزمية عامة لأي مجموعة من العناصر بدون تحديد عددها .... و مما يزيد المسألة تخصصا ، أني أريد الكود بإستخدام تحديد نوع البنية بمعنى
typedef struct *stack
{
struct stack *item;
int dato;
}stack;
stack *top;
void push(int);
int view(void);
int pop(void);
.................
.................
main()
{
.................
.................
}
void push(int)
{
..................
}
int view(void)
{
................
}
int pop(void)
{
...............
}
أرجو منكم شديد الرجاء المساعدة ، على الأقل بالخوارزمية العامة بدون الكود
ثم نفس الطلب أطلبه لما يسمى
queue ==> F.I.F.O. "first in, first out"
و التي تزيد عن الأولى بمسألة تحديد البداية و النهاية
كما ان لدي سؤال ، و هو : ما ذا تسمى كل منها في اللغة العربية ؟؟ لأمكن من البحث عن مصادرو كتب تشرح الموضوع
---------------------------------------------------------------------
وعليكــم السـلام ورحمة الله وبركاتـه..
الأخ josen بالنسبة لسؤالك عن اسماء هذه الخوارزميات باللغة العربية فهي كالتالي :
Stack : هو ياخذ معنى ان ترص شيء فوق شيء.. مثل علبة البطاطس او الشيبس الاسطوانية فحينما هذه العلبة الاسطوانية الشكل
تتناول اول شريحة بطاطس في الاعلى وهذه الشريحة فعلياً كانت آخر شريحة دخلت للعلبة اثناء تعبئة العلبة بشرائح البطاطس
كذلك تعمل هذه الخوارزمية فـ آخر عُقدة من البيانات تم اضافتها هي التي يتعامل معها كما ان Stack Algorithm تحتوي دالتين اساسيتين
push(int v) و pop()
push(int v) : لإضافة عُقدة جديدة ( object )
pop() : لحذف آخر عُقدة تم اضافتها وفعلياً هي اعلى عُقدة موجودة
Queue : وهو الصف ومن فينا لا يعرف نظام الصف؟
فآخر واحد يأتي للصف ينتظم في آخر الصف ( عكس خوارزمية Stack ) وبالتالي فـ آخر واحد اقوم بخدمته هو آخر من جاء إلى الصف
كلامي كان عام ونظري واردت منه فقط توضيح الافكار الاساسية ولكن للاستزادة عليك بالشيخ قوقل