السسلام عليكم ي اخوان
ممكن حد يصحح لي أخطآءي بهالبرنامجين ..
عندي اختبار في الغد وللأسف مو راضي يتطبق معي صحيح ..
الأول باستخدام single linkedlist
#include <iostream.h>
// global variables declation
struct stack
{ int info;
struct stack *next;
};
class stack1
{ private:
stack *Top;
int item;
public:
stack1 () {Top = NULL;} // constructor, which automatically executes when object of the class will be created
void Push(int item)
{
cout<<"enter number";
cin>>item;
stack *Newnode = new stack;
Newnode-> info = item;
Newnode-> next = NULL;
if(Top == NULL) Top = Newnode;
else
{ Newnode -> next = Top; Top = Newnode; }
}
int Pop( )
{ struct stack *t;
item = Top - > info;
t = Top;
Top = Top ->next;
delete t;
return item;
}
bool IsEmpty( )
{ if(Top == NULL ) return true; else return false; }
void Traverse( )
{ stack *TopTemp = Top;
do{ cout<<TopTemp->info<<endl; TopTemp = TopTemp->next;} while(TopTemp!= NULL 0);
}
}; // end of the class
int main( )
{
stack1 z; // Creation of an object
z.Push();
z.Pop();
z.Traverse();
return 0;
}وهذا الثاني بتمثيل الstack كمصفوفة ..
#include <iostream.h>
int const STACKSIZE =10;
class stack1
{ private:
int Top;
int Stack[STACKSIZE];
int item;
public:
stack1 () {Top = -1;} // constructor, which automatically executes when object of the class will be created
void Push()
{int item;
cout<<":::";
cin>>item;
if (IsFull())
cout<<"NO";
else {
Stack[++Top] = item;}
}
void Pop( )
{if (IsEmpty())
cout<<"UNDER";
else {
Stack[Top--];
}
}
bool IsEmpty( )
{ if(Top == -1 ) return true;
else return false; }
bool IsFull( )
{ if(Top == STACKSIZE-1 ) return true;
else return false; }
void Traverse( )
{ int TopTemp = Top;
do{
cout<<Stack[TopTemp--];
}
while(TopTemp>= 0);
}
}; // end of the class
int main( )
{
stack1 ms; // Creation of an object
ms.Push();
ms.Pop();
ms.Traverse();
return 0;
}وعندي بعض الأسئلة : )
- لو مثلت المكدس بشكل double linked list هل استطيع ان احذف من الاخير ..؟
- ولو كان عندك مكدسين وبنعمل لهم دمج فهل هذا الشي ممكن ..؟
- وكيف استطيع ان احذف قيمة واحفظها في مكدس اخر بمعنى
القيمة التي احذفها من المكدس الأول ادخلها بالمكدس الثاني ؟
- وهل يمكنني ان اطبع عناصر stack بطريقة عكسية ؟ كيف ؟ :(
ولو تكرم احد وشرح لي طريقة التحويل من prefix to infix
اكون شاكرة له . وداعية له بالتوفيق والفلاح في الدارين ..:)
أريد عونكم يااخوان باسرع وقت
جزاكم الله خيرا ..
