1
2 3
4
سا
ا 5
تا آه إ 6
تا آه ا 8
تا آه عاأ 8
سا)Stack( 8
,
.
.
.
.
6
ا آه إ ت
عوا فا إ ء ةاا ا ه و ا
ا ةو ا ا ه ث نأ ا تاو
ةا إو ا .
ا ءا و تا ه ا ا آ هDATA
تا وINFORMATION ا سأ ه .
ا اه .
ا آا / ا ا ا طوأ تا آ هو
يأ وأ ة ا صا تا ن ا صاو
.
و تا آه ا تا و تا آا/ ةرت تزراو
ا
7 و و ةآاا ا لا و ا م م و م
ا زراا إو تا ه .
و/ تا ص و ا ه ا ا ا ةآ ه تا
ةآاا ً ًهو ً ا تا
ًوُاد َ يد او او.
• تا آه ا
فا و تا ز اإ و اةآاا .
او ءا و ا ء.
ا عاأا اا آ ة ق .
ةآاا تا عاو ا ز را.
• عاأتا آه
آ ت آه)STATIC INFORMATION.(
ي ا و تاو لوااو تآه تا
ا دا ق
ةا او ء أ ج وا ا سا أ لآو
ًوأ ج ن او ا افاو او و top.
ةءااوأ ا يإ او ف top.
• سا ا و
دإ ا ا
اا ءا ت م
زو ا او ضاا ت
ا اا ءا
ولا ا نأ ي سا إ او TOP
ن ُر سا ن TOP=-1 و لدإ لوأ
++ TOP نأ إ او را ا ن دأ آو
سا .
وجاأ سا ا او را ا أ إ نأ ا =-1
وأ NULLاآُر سا ن .
• و سا ق و ةآاا :
سا ا اا ايإ .
صاا ا)COMPACT ( ةآاا يإ دأ.
لآو ت سا إ ا ا
void push(int a[],int k){
if(top==sise-1)cout<<" FULL STACK";
else
a[++top]=k;
}
int pop(){
if(top<0)cout<<"EMPTE STACK";
else
return a[top ];
} Top و م هو سا ذ
و إ لا لاوا
سا تا جاأ اد
ن سا نأ
يأ ا top =
ا -1
إو و ا ا
ا ا ا ا ا
ن يا
top
ًر أ سا نأ
ا نtop = -1 ا يأ
ا
ا اد ا ج إو
a[++top]=k;
}
int pop(){int i,max=a[top ];
for (;;)
{if(top<0)break;
else
if(max<a[top])max=a[top];top ;}
return max;
}
انأ و و او لا يإ ه فا نإ با نآ ا ا
ااا و اه ا د سا ا و ا اد ا با ا
ز آا
for(;;) أ ا ط BREAK.
سا ت وأ ساا Prefix and Postfix درو ماا نو
سا.
3)
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
void check(char[]);
main(){clrscr();char s[100];
cin>>s;check(s);
getch();}
void check(char s[]){char c;int i,x,y;x=y=0;
for (i=0;(c=s[i])!='\0';i++){
if(c=='('||c=='[')x++;
else
ن با top <0
#include<iostream.h>
#include<conio.h>
#include<string.h>
#define size 10
struct stack
{int top;
char a[size];}s;
void push(struct stack*);
void pop(struct stack*);
int full(struct stack*);
int empty(struct stack*);
void main()
{clrscr();
s.top=-1;int i;
char x[size];
cout<<"enter your string"<<endl;
cin>>x;
for (i=0;x[i]!='\0';i++)
{ if (x[i]=='(')
{
if (!full(&s))
push(&s);
}
else if(x[i]==')')
{
if (!empty(&s))
pop(&s);
else
return 0;}
إ نأ ا هذ او سا ة ,نأ اذإ نإ ت إ سا
آو ُ ن ذ سا و إ ا م ل و سا
ُ ا اا
ه هأ و لو ةا
ونأ ةا إ نذإ ا ا و ءو
5)
#include<iostream.h>
#include<conio.h>
int size=10;
int a[10],top=-1;
int pop();
void r(int[]);
void push(int[],int);
main(){clrscr();int i,k;
for(i=0;i<size;i++){cin>>k;push(a,k);}
r(a);
for(i=0;i<size;i++)cout<<pop()<<" ";
getch();}
void push(int a[],int k){
if(top==size-1)cout<<" FULL STACK";
else
a[++top]=k;
}
int pop(){return a[top ];}
13
}
int pop(){static int max=a[top ];
if(top<0)return max;
else
{if(max<a[top])max=a[top];top ;pop();}
}
ف دا اهويإ؟ سا
7)
#include<iostream.h>
#include<conio.h>
int size=10;
int a[10],top=-1;
int pop();
void del_pop(int[],int);
void push(int[],int);
main(){clrscr();int i,k;
for(i=0;i<size;i++){cin>>k;push(a,k);}
cout<<"ENTER NUMBER DELETING\n";
cin>>i;del_pop(a,i);
getch();}
ا ه ا اه و
ج نأ ما ةآاا
ا و ت تاا ن ةآاا
14
15 اا ً)Queues (وأا ت ر
ةر هو ا تا آه عو قر تا سا
نأ ه اإو تا لد ا ا FIFO (First Input First Output)
يإ اا وأ جرا وأ يإ ن ا فاو ا ما يإ ر
سأا و head or front و ا و tail or rear وا
فا و ا ا سأا ا أ تا ن
ةآا ا و رو يإ أ را ر
لو ه لوأ اد .
ا ر ردا ا وأ ا.
عاأ اا
ولدإ لوأ اسأ او =0 1
HEAD
TAIL
TAIL
HEAD16
ولدإ ا ا مأ سأا ه آ
2
1
ا فا ويإ ا ن سأاو او را ف آ
ازإ ف آ ر نإ تدرأ.
وا ج د لوأ
ا اه و a . دزو
أو ا سأا
ة يا .
TAIL
را نأ ا
If
(
tail
<
size
-
1
&&
head
==
0
)ا را نأ ا و
If(tail==size-1&&head==0)
را ن ا و ت
جااو ف
If(tail>0&&head<=tail)
HEAD
void del(int[],int);
main(){clrscr();int i;
for(i=0;i<size;i++){if(tail==size-1){cout<<" FULL Queue";break;}
add_q(a,i+1);}
cout<<"ENTER VAL DELETE\n";cin>>i;
del(a,i);
while(tail>=head)cout<<p_q()<<" ";
getch();}
void add_q(int a[],int k){
if(tail==-1){head=tail=0;a[tail]=k;}
else
a[++tail]=k;
}
int p_q(){return a[head++];}
void del(int a[],int k){int x[10],t2,h2,m=head;t2=h2=-1;
if(tail==-1||head>tail)cout<<"THE QUEUE EMPTE\n";
else
while(m<=tail){
if(a[m]!=k){
18 if(t2==-1){h2=t2=0;x[t2]=a[m];}
else
x[++t2]=a[m];
}m++;}head=tail=-1;
while(t2>=h2){
void ser(int a[],int k){int y=0,t=tail,h=head;
if(t==-1||h>t)cout<<"THE QUEUE EMPTE\n";
else
while(h<=t){
if(a[h]==k){y=1;cout<<"FOUND\n"<<a[h];break;}h++;}
if(y==0)cout<<"NOT FOUND\n"<<k;cout<<endl;}
(* ر د
آذ ئرا و ا ة نأ دا
وأ آا نأ را ا آ ب را لوا
ر ه ا ةا
ا ا لدإو ا ا
داا ا يوا ر
ا19 ا وا
)ا د ةدا ا- ا د=(>) ا ا د-ا را (
را ذ ا لوا.
(*اا
ا دآ اورا أ را ا نأ ا آأ تو و
ا ء ا ا اهو .
11)
#include<iostream.h>
(*م آا س إ؟ ر //او ا ق //
(* ر صأ و ا هو 1 إ 5 را هو ة ا
ر3 أا و ي ر ا د ر ه
اإ زراو را ًوأ اا ًوأ ا؟
20
• ا آا
ونأ اا دا او راو ا آ د م
تا ,ات تااو.
21
22
23