Tải bản đầy đủ (.pdf) (68 trang)

Data structures in c++ pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (9.44 MB, 68 trang )


1



2





3



4




سا

ا 5

تا آه إ  6

تا آه ا 8

تا آه عاأ 8

سا)Stack( 8



اا ً)Queues( 15

تا 20

ااList)( 35

راTrees 52

ردا 67

ا 68

5




            
           
         )     
          ( ) 
          (  
             

            
        .
            
           
          

         
             
       ,       
     .
         
           
            
 .

             
            
            
             
          .
            .
 




6



ا آه إ ت
عوا  فا إ  ء   ةاا   ا ه و ا
ا  ةو    ا ا ه  ث نأ  ا تاو  
 ةا إو   ا .
  ا ءا و تا ه ا ا   آ هDATA
تا وINFORMATION ا   سأ ه  .

؟ هد نأ   آو تا ه و تا ه 
ت/ وأ ا   ه  ُ وأ ُار وأ مرأ وأ فو ن  را.
تاو/ ا  راو    ء  .
نذإ ةدا ه ت ن اا و   تا ه تا نأ وأ ت ما
ا ه  ا قا.
• تا  ا عاأ
1. ا.
2. فاوأ ءا .
3. ا .
4. زا.
5. ا تا ما آاو ا +),*,-, (/ ا تاو =), !=
,< ,>, <= ,>=. (
6. وا ا)SAVE(.
7. او ا.
8. او او عا.

 ما  ُوأ ت  لا   ت    نذإ  تا ه 
.
• ت ا آاو ا آا
ا   نأ ت  مزا ا ا إ أ ا ة  ًاآ 
وهأ:-
  د اا ةآاا.
 و  د ا جااو لدا تا.
  د اا ةآاا  جااو لدا  ) ه  تا لد
  يأ تاا.
إ ل    ا  او   دو  لوا ا نأ 
لدا تاا  هر تا ,ه  ياو ةآاا  ا   لا
ت او ا آا إ ةرا   او جااو لدا تاوو ا
ر ا   
ا آا / هو   ا  ا يأ  ا ت  اه ن

  ا اه    .
ا آا / ا ا  ا طوأ  تا  آ  هو
يأ  وأ ة  ا صا  تا ن  ا صاو
 .

و تا آه ا   تا و تا آا/  ةرت  تزراو
     ا     

 

  

7


 و و   ةآاا ا لا و ا م  م و م
ا زراا    إو   تا ه  .
  و/ تا ص و ا  ه ا  ا  ا ةآ ه تا
ةآاا  ً ًهو  ً ا تا      
ًوُاد َ يد او    او.
• تا آه ا
 فا و تا ز  اإ و  اةآاا    .
 او ءا   و  ا ء.
  ا عاأا اا آ  ة ق .
 ةآاا  تا عاو ا ز را.

• عاأتا آه
آ  ت آه)STATIC INFORMATION.(
 ي   ا و تاو لوااو تآه   تا
ا دا  ق

ت آهد يإ ة آ
عا اه وإ
(1 ة  ت آه/     ا هو
 تا.
 اا.
 اا.
 تا.
 تا.
 تا.
(2  ت آهيإ ةآاا   ا  / را , اا

و  ه تا ا ا آ ً اا











8


 سا ُوأ)Stack(
سا / و     اإو   تا  ص جذ  ةر ه
او اأ جرا وأ اا  تا   قو  ةر وأ جرا اأ ا
LIFO (LAST INPUT FIRST OUTPUT)

ةا او ء أ ج وا ا سا    أ  لآو
ًوأ ج ن او ا   افاو  او   و top.
ةءااوأ   ا يإ او ف   top.
• سا ا و
 دإ ا ا 
 اا ءا ت م
 زو ا او ضاا ت 
 ا اا ءا

ولا  ا نأ ي  سا إ  او   TOP

ن ُر سا ن TOP=-1 و لدإ لوأ    
++ TOP نأ إ او را  ا ن  دأ  آو
سا  .









وجاأ سا  ا  او را ا  أ إ نأ ا   =-1
وأ NULLاآُر سا ن .
• و سا  ق  و ةآاا  :
    سا  ا اا ايإ    .
 صاا ا)COMPACT ( ةآاا  يإ    دأ.
لآو    ت سا إ ا ا














9


ضونأ   4 ) (داو أ  )X (اذإو درأ جاإ   سا ن
أ هو د  (x) ا ا  آ
و اهلوأ  م  سا اد  لدإ    1)
#include<iostream.h>
#include<conio.h>
int size=10;
int a[10],top=-1;
int pop();
void push(int[],int);
main(){int i,k;clrscr();
for(i=0;i<size;i++){cin>>k;push(a,k);}
for(i=0;i<size;i++)cout<<pop()<<" ";
getch();}



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 ا يأ
ا 
ا اد  ا ج إو

 نا  اtop حو
ا ا .
TOP ,PUSH,POP STACK
 ا ه آ  و تا ءأ  ةر
لاود   ءا  ا يروا.
هو سا  تا لدإ اد
 ارأ ع و  ع 


10


ا لا ولاو   ا إأ  سا  ا اه  
اSTACK   ا   و إ ء او أ هو إ هآذ ا 
ً.
لآوأ اد  ا ن  س  آا جا م جاأ pop
2) #include<iostream.h>
#include<conio.h>
int size=10;
int a[10],top=-1;
int pop();
void push(int[],int);
main(){clrscr();int i,k;
for(i=0;i<size;i++){cin>>k;push(a,k);}
cout<<"THE MAX VAL = "<<pop();
getch();}
void push(int a[],int k){
if(top==size-1)cout<<" FULL STACK";
else


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

 نر إو max نأ إ اهو 
Max  آا  
ا ة
ا س    ه(
قا س و)
   س    آو
 ا  آ
اذ ا  با  نرو
س  آا قا س نآ
م ر   ا
ا  و
ا أ نر ا و اذ 
ا  آا ا ىإ نآ
ل  إو ءا  
ا


11


if(c==')'||c==']')y++;
if(y>x){cout<<"ERROR\n";exit(1);}
}
if(y>x||x>y){cout<<"ERROR\n";exit(1);}
cout<<"ACCEPT \n";
}
ا اهو ا إ أ تا او سا ا يإتا ح و
ُ تا.
4)


#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 s.top ;
}
}

if (empty(&s))
cout<<"true";
else

12


cout<<"false";
getch();}

void push(struct stack *s)
{s->top++;
s->a[s->top]='(';}

void pop(struct stack *s)
{s->a[s->top ]=')';}

int full(struct stack *s)
{if (s->top==size-1)
return 1;
else
return 0;}

int empty(struct stack *s)
{if (s->top==-1)
return 1;

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




void r(int a[]){int x[10],y[10],top2=-1,top3=-1;
while(top>=0)x[++top2]=a[top ];
while(top2>=0)y[++top3]=x[top2 ];
while(top3>=0)a[++top]=y[top3 ];}

آ ا    ماا ه   تا   تا  
سالوا إسا ا س ا و ا  تا ن تا  
إ سا ا سا  و   ا  .

ا اه او  ل  آا ساا ءا ا
6)

#include<iostream.h>
#include<conio.h>
int size=10;
int a[10],top=-1;
int pop();
void push(int[],int);
main(){clrscr();int i,k;
for(i=0;i<size;i++){cin>>k;push(a,k);}
cout<<pop();
getch();}
void push(int a[],int k){
if(top==size-1)cout<<" FULL STACK";

else
a[++top]=k;

}
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



void push(int a[],int k){
if(top==size-1)cout<<" FULL STACK";
else
a[++top]=k;
}
void del_pop(int a[],int i){int top2=-1,m[10];
while(top>=0){if(i!=a[top])m[++top2]=a[top];top ;}
while(top2>=0)cout<<m[top2 ]<<" ";}

…………….








إ ا  ن ه ئرا عا  ضو ا  إ حا اه او كاود يا
ً هنأ  يإ    ناو و  برا ئرا و را و ن .

(* جا م  آاداا سا  ةرا يإ ف داا؟ ةرا
(*؟ س   م  آا
(*  م  آاازإ لو  دا  ازا؟ما  ا
(* ا تا  و   م  آا), دا ,ح ( ؟
(*  م  آاادا س داو س وا أ؟
(* ف م  آاداا وا؟ سا 




















15


 اا ً)Queues (وأا ت  ر
ةر هو ا تا آه  عو قر    تا  سا
  نأ ه اإو تا لد ا ا FIFO (First Input First Output)
يإ اا وأ جرا وأ يإ  ن ا  فاو ا  ما يإ ر 
 سأا و head or front و ا و tail or rear وا
 فا و ا ا       سأا ا أ  تا ن
 ةآا  ا  و    رو يإ أ را ر
لو ه   لوأ  اد  .
ا ر ردا ا  وأ ا.

 عاأ اا

(1  ر / هو طو دو  ا نأ ا  يو ا  ن .











(2 ياد ر / ا  إ نأ ا   ءا ط سأا= 1 و
ا= ا أو سأا=ا+1.











أو ث إ ا را :-


ن اا  سأا نا  او ي و  نأ   را إ يإ 
ن  if(tail==-1||head==-1)


ولدإ لوأ   اسأ او =0


1
HEAD

TAIL

TAIL

HEAD


16



ولدإ     ا ا   مأ سأا ه آ 
2

1

ا  فا ويإ  ا ن سأاو او را ف  آ 
 ازإ  ف  آ  ر نإ تدرأ.

























ر  لوا اهو
8)

#include<iostream.h>
#include<conio.h>
int size=10;
int a[10],tail=-1,head=-1;
نأ را  يا ا  
أ x ا ن را داز 
  أو او.
ن را   أ و

وا ج  د  لوأ
  ا اه و a . دزو
 أو ا سأا  
ة يا  .
TAIL

را نأ ا   
If
(
tail
<
size
-
1
&&
head
==
0
)


ا  را نأ ا  و
 
If(tail==size-1&&head==0)
را ن ا  و ت 
جااو ف
If(tail>0&&head<=tail)
HEAD



17


int p_q();
void add_q(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);}
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++];}

أو را  ا تا د
(*ا ADD
داو ا ا ا دا  ه
(* فاDEL
ا  دا اهو
9)

#include<iostream.h>
#include<conio.h>
int size=10;
int a[10],tail=-1,head=-1;
int p_q();
void add_q(int[],int);

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){

if(tail==-1){head=tail=0;a[tail]=x[h2];}
else
a[++tail]=x[h2];
h2++; }
}
(* ا
ا ا  إ إ وو و ر  م 
 إ   نإ و  إو  إ    .
10)

#include<iostream.h>
#include<conio.h>
int size=10;
int a[10],tail=-1,head=-1;
int p_q();
void add_q(int[],int);
void ser(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<<"\nENTER VAL SERCH\n";cin>>i;
ser(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 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>

#include<conio.h>
main(){clrscr();
int x[5],y[5],i,j,k,t=0,tail,taily,head,heady;
tail=taily=head=heady=-1;
cin>>j;tail=head=0;x[tail]=j;
for(i=1;i<5;i++){cin>>j;t=0;
while(head<=tail){heady=0;
if(t==0&&j>=x[head]){y[++taily]=j;t=1;}
y[++taily]=x[head++];}
head=tail=-1;if(t==0)y[++taily]=j;
while(heady<=taily){x[++tail]=y[heady++];head=0;}
heady=taily=-1;
}
for(k=0;k<=tail;k++)cout<<x[k]<<" ";cout<<endl;
getch();}

 را ياا:-
آذ ا اا   ن فاو ُ هاوأ طا
ُر را نif(head==tail+1).
  را نif(tail!=size&&head=1).
را ن if(head==1&&tail==size).
 اا   س آذ ا اا ورا.
  ه إو ئرا نأ   ُارد ن ناو را ة ا  ن ه را.


اا  ر
(*؟ ر  م  آا
(*؟ ما   د ن  ر  م  آا
(* م  آا؟ ر وا اا ف
(*آا ر و م  ه؟ لو 

(*م  آا س  إ؟ ر //او ا  ق   //
(*  ر صأ  و ا  هو 1 إ 5 را   هو ة ا
ر3 أا  و ي  ر ا د    ر  ه
 اإ زراو را ًوأ اا  ًوأ ا؟




20



• ا آا
ونأ اا    دا او راو ا آ   د م
تا ,ات تااو.

21




22




23





24




25



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×