4#include void pushstruct stack*; void popstruct stack*; int fullstruct stack*; int emptystruct stack*;... نأOCIC نذإءو, 5#include void pushint a[],int k{ iftop==size-1cout... =ا node=n
Trang 22
Trang 4
4
5
-
6
-8
-8
) Stack (
-8
) Queues (
-
-
-
-15
-
-
-20
List) (
-
-35
ر5<=ا Trees
-
- - -
52
-
67
-
-
-68
Trang 5( )
5!2 %6 * # %*. % (
$
"1 8(
.
?8 " 4 B!* ?8 4
# ,
G'* H
)
? >
! A "# 4 = %B # J G6 ?8 %D B
$ @* 5 5
L 8
?* * )* * )** > - >@!
.
Trang 6
6
DATA
INFORMATION
/ $ ُ-^r وأ ُارT وأ مGرأ وأ فو[ ن#C G ر#=ا
pb
/ر#=او
نذإ
•1
xzا
2.وأ
3.ا
4
5 +)
,
*,-, (/
SAVE(
7
8
``T
•ت
Jو
Q$هأ:
J د`C اX
و J د`C اX جاrzاو لrدzا تا[
J د`C اX
)
,
رAQr, JU/ ا \MKC 5 t[
/ هYcو
/
Trang 7/
ا
ةآ
`,
VWه
WDQC ً4#<و
•
U,و QK
•
عاأ Uآb Q,/ ت, آه)
STATIC INFORMATION
.(
VWه
xzا
ت, آه
#UMديإ
ة{Q آ`Q
JX
(1 ة{Q -r ت, آه/
(2 KFQ ت, آهيإ
/
ر5<=ا ,
8^#QUbو
JX VWه
Trang 88
)
Stack (
^X=ا $6M [او <] cM و
top
Mأ J 8QM X=ا
^
يإ [او ف J
pM JXtop
إ [او <] ^X TOP
TOP=-1 UXو
لrدإلوأ $G
U J M
$G++ TOP
^$Xوجاrأ
U
Mأنأ
=
-1
وأNULLاآ
•VTUX
:
يإ
$G #< ^X
)
COMPACT (
يإ A #< ^X
Mد[أ
ل$آو ^X
Trang 9نأ 85[
4 ) (
U^rداو
rأ $G )X (اذإو
درأجاrإ
$G
rأ Oهو t^rد $G (x)
و اWهلوأ |,
QX-,
1)
void push(int a[],int k){
if(top==sise-1)cout<<" FULL STACK";
top = 85[
1 MUb إو top
-top
= - 1 Gا يأ
top
ح-Ubو
TOP ,PUSH,POP
STACK
Trang 1010
ل#<zاو
STACK
UX \^QDM و A$
ءOF, [او أ
Oهو
ً,b
ل$آو
rأجاrzأ
void push(int a[],int k){
if(top==size-1)cout<<" FULL STACK";
ه ف4Qr ا KC
نإ
bb=ا Oو
اWه
ز ^X U^A[ $G آا
UKfor(;;)
Mأ ¢`
ساG=ا ,KQ,
Prefix and Postfix درUbو
ماDQbا نو,
3)#include<iostream.h>
wAM Max $G آا ^X T[
|
(
) $G J MM سG ^X $M آو
سG J آا ق4Zzا سG نآ
ا Mأ نرM r=ا Oو
Trang 11
ح< 8Qbو
4)#include<iostream.h>
void push(struct stack*);
void pop(struct stack*);
int full(struct stack*);
int empty(struct stack*);
Trang 1212
ن أ G QXا
C ,
ن أاذإ U L^
نإ ت, rC
ه هtCأ
نأOCIC
نذإءو,
5)#include<iostream.h>
void push(int a[],int k){
if(top==size-1)cout<<" FULL STACK";
Trang 13void 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 ];}
YC#
Jb# ماDQbا ه
JMrv
لو=اO^T=ا
$G آا X
س
6)#include<iostream.h>
void push(int a[],int k){
if(top==size-1)cout<<" FULL STACK";
Trang 1414
void push(int a[],int k){
if(top==size-1)cout<<" FULL STACK";
`M يإ CM G JM$C نeاو
(* جاDQb, مM |, LQآاداX=ا
يإ فW`, داX=ا
[ازإ ل$<و J$M L6[
[ازzا
(*)
SC, د`Cا ,
ح (
؟
(* M`Q, مM |, LQآاا
Trang 15
)
Queues (
وأ Q ا ت45b
ر
ةرX Oهو
YFMو
J$#M Oنأ
FIFO (First Input First Output)
يإ وأ
وأيإ ^$X ن#C
xzام=ا
يإ
<] JM<]
$6Mو head or front
tail or rear
[ا,
Mأ
#F,يإ
<أ
لوI
لوأ
YFMQ ا ر,
/ هو ط<و دو` 85[
Y4Qانأ
(2 ياد ر,
/نأ
=
1
و
= 85[
أو
=+1
أUbو:
ي=
نأيإ
$G
ن#M UX if(tail==-1||head==-1)
UXولrدإلوأ $G $G wAMسأ
=
0
1
HEAD
TAIL
TAIL
HEAD
Trang 1616
UXولrدإOIC
M $Gمأ
ه $آ M
2
1
يإ
تدرأ
8)#include<iostream.h>
a دزو
TAIL
$6M w
xz,
If(tail<size-1&&head==0)
و
xz, w$6M
If(tail==size-1&&head==0)
w$6Mو ت, ,
If(tail>0&&head<=tail) HEAD
Trang 17
(*
xzاADD
(*DEL
9)#include<iostream.h>
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){
Trang 1818
نإ cو YK-
إو S-
Uإ
10)#include<iostream.h>
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";
آذIbنأ
وأ L5M J
نأ c,
Y
آ [6
بKQb لو=ا
ر
Trang 19
)
ا دXObb=ا
-=(
>
)-
ء-r Yا QXا اWهو
11)#include<iostream.h>
if(tail!=size&&head=1)
R^Q$
if(head==1&&tail==size)
نأ
VWه
(*LQآا ر, MوQ, مM |,
ه5C ,J
؟ ل$<و J$M
(*مM |, LQآا س# 6U,
15 رQ ا \T O 8هو
ةI5
8Gر
3 LTأ
Q ا $`Q6M و يG Sc, ر
Trang 20ر5<=او
S ,
ت
Trang 22
22
Trang 2424
Trang 2626
Trang 2828
Trang 3030
Trang 3232
Trang 3434
Trang 35• List)
(
نوأ
)block( ^Qآ وأ
,
Mد
/
O لrدzا نآ اذإ
$6Mو head
ناUX cMو
$6Mو
tail
NULL
و:
ن
^#< ن#ـC \آ
M
هK,
^G وأ
ءO ةX ^rاد نأ [
.
Trang 3636
عاأ ةX
•
•
• ن# يأ J xzا
ع J
list
و tail ع J
list
و node
JX ةد U ن#C نأ , و Mروx Oهو ة-r لوأ Uه
=ا node=new list
Node->next=NULL
.
ن#Ub Uه 4
ل ن#
\ UMد 5 X Tail->next=node
tail=node
O, و ةX
node=node->next
ة
NULL
[4
Trang 37
node->next=head;
head=node;
i++;}
ةX xإ |, اWهو AUX K,
ة
ة<
ةMc ةX ءFإ ^X $KUb U
Trang 38
38
لrدzا
جاrzاو
UX U$^#C G
Trang 39push(list**top,int i){list*k;k=new list;k->a=i;k->last=*top;*top=k;}
shlist(list*p){while(p!=NULL){cout<<p->a<<" "; p=p->last;} cout<<endl;}
#include<iostream.h>
#include<conio.h>
Trang 4040
struct list{int d;list*last;};
Trang 41
K,و
M Mد[=ا
ت-C J روM و
(*
(DELETE)
/ -6, ^$X ه
,
W`C 8C U لQ ا وأ L5M ةX فW[ UX eا اW,
•
•
• ن# ي
rأ يأ
ةX
Trang 4242
getch();
}
Trang 43
Mد
.
Trang 44
44
ر
(*
%8
, د/ا , ح8
5D
)1,2,7,9,5,6 (
%;>K21 دا6 Lاو 7,9,5
؟
(*5D
ت
#اأ0
M#ا ا.N ةآا.#ا PK 5
؟
Trang 45
,W$
^
.
8اG YMد[أ
نأ
next FM <]و last
VWه
[=ا
Mد
أولوI, Y^$X أ ^$X Oهو
xzا
ع J
list
و tail ع J
list
و node
-r لوأ Uه
JX ةد U ن#C نأ , و Mروx Oهو ة
=ا node=new list
Node->next=NULL Node->last=
[ Kc يأ
U[
ن#Ub Uه 4
5 X
Tail node->last=
Tail->next=node
tail=node
Trang 46
46
getch();}
J xzا مأ
while(i<4){
[4
Trang 47
void f(list**,list**,int) {C يإ ن
f(list*,list*,int)
void
^$X يإ ن
آIQM
داXzا
Q`C وج
!
ن
راb=ا SUو را=ا ^Xو $` b
`Tو
ر=ا
.
د
.
Trang 48
48
إو
إو
_" ظ$/#ا ه طM
#ا Pه ة64#ا Wآ اذإ Y$Y طM#ا ا.ه PK5
و سأ#ا
#ا5
ًeا \" ناو ^;?و
Trang 49
JQU/
{node=new list;cin>>node->d;node->next=NULL;
node->last=tail;tail->next=node;tail=node;}
cout<<"ENTRER LIST 2 \n";
node=new list;cin>>node->d;node->next=node->last=NULL;tail2=head2=node; for(i=1;i<5;i++)
8Cأ جQ`M و
ح<
وأ LKC
Trang 5050
t`Cا G Uه OUI
8 ل
ضQنأ
struct list{int d,list*next,*last;};
/4/ تا<]
node , tail , head
T4r
U# ,:
Trang 51
(* -
-bا,
Mد[=ا
آا $X $KM |, LQيإ
ن#M
JM{Q J ن#
يإnext , int last
VWه فوKو $
نإ
داXzا
) 1,2,3,5,7,9,11,13,…
(
؟
(* -bا,وأ
(* S$c
^Rb=ا
(* مM |, LQآا
$Q, ت, Wه
S
Trang 5252
ر5<=ا Trees
.
يإقاروأو
و
J د` دX
)nodes (
root
node [
نإ تا5< J X$5 Oه
t1 ,t2,t3,t4 ……
Mرذ 5
)leaf node (
#Q
(J)
^X=ا ةX XCو
T=اوأ
A ,Z $6C ءU,=ا
T=ا $6M J, او (branch)
ءU,أ
Gرو $6Q
Q,K,F,L )
leave
(
Q
R
/ c X$5 ه
T=ا هو Y6 ُ4#ه #FM )
tree
(
نأZ,AO^T=ا
ر5<=ا
(a+b)*2
ن#
/
J#$
$Cر5<=,
تX
/
VWهAND,AT,ADD,BDDMBAND,BATTLE
J
D R
B
L F
A K
s
Node s
Roo t
b
Trang 53
8C \آ Å[4
$C يو6M
35
wTأ يو6M 24
ف[=ا
VWهو
x
J
8هأ ا
ر5<=ا
/
5, ^`C O X6Cو
$=ا
/
ن#Cو
)
Inorder taversal (
)Infix
(
G
ق6C ا )
preorder traversal (
G #<
)prefix (
D N
T
A D
I
N
B A
T
Trang 5454
)
postorder traversal (
K, #<
) postfix (
T4r /
bb=ا:
preorder ,
inorder ,postorder
O preorder وأ
, وinorder ,
$
:
نأ
$C -bا, ق ةK, ,
$CوVWه
:
)
H
(
)2^(H+1)-1 (
أ A$, $C ^Xو
)2^(H+1)-1 (
تا$و VWه
nS
ً``T ن#M ب=ا )
^$X
نأ
U5Cا $^آ
ب=اوأاW#هو
ن#C داX=ا
ر#ونأداX=ا
Å[4ونأ
بX J
VWه
ماDQb
45
20
24 21
Trang 55
نأ
هرX
,ت
ء,zاءU,=,) Father Link (
^C $G ^X $QKC
,Y5Q
T4rوVWه
C ,
لو=ا
^X سbأ
ألو=ا
) (ز
OC=ا
^X إو
ن
U^rدأ)
)
25 ( U^Qا 8/
20
=
J {Tا 25
=
J {Tأ 20
13
25 اW#هو M
داX=ا
$وO^M
=NULL
/(
p 0 0 1
2"
# 7 $
8p + 9(
+ # -
&$1
Trang 56
56
void insert (tree*root,tree*node){tree*p,*s;
اWه
Trang 5858
6 5
7
ل
ل ب0ا ه
ة64"#
Trang 59
}}
يإ
U xأ ^$c static
8^bو
:
Trang 6060
ءU,أ ً,b U^G $آ ,
قاروأ ,
Trang 6262
:
ذإYW[
^X يQ`M Gرو ءU,أ
=
F cC و b
1
وأ
vرويإ
ن#M بأ
2
ءU/إ
مأif(node->left==NULL&&node->right==NULL)
3
نأJUQ
ر6M ^X ه ه ب=ا
مأ ^X YU$M
^X نآ نI
Vر6M [ K5
left=NULL
OC=ا
YW[
70
Trang 63
1
ب=امأ ^X YU$Mif(60>70)
2
YU$M X ة5<و داXأ ُx
if(node->right!=NULL)
اذ
ب=ا
J, ا J$, VWه O ن#U
70
,ر U^X O,
ءاcأ A هو J, ا
8
1 B =* # "# %=
( ; !
A$ 1 ! %B '
= 1
?!
! B* O'*
>$ ; !
$*
>( 4 =(
Trang 64
64
ر6M , إوب=ا
J, ا J$, ,
نأ
إ
أ
-6,
`
U^^[أيإ
رW5
U
VWهونأ
J فW`M يإ
و
Sc يأ O cM
Trang 6666
JX UM[ OQUM Uه ر5<=ا
د6, U^X O, VWه
(* -bا, |, LQآار5<=ا
(* -bا, |, LQآار5<=ا
UC ةو
(* -bا, |, LQآار5<=ا
ء,eاءU,أ
10,3,43,62, 5,1,40 (
YX U ب^VWه
وأيإOC=ا
(* U/ ة5< M`Q, مM |, LQآا طF, ر,
نأ
ماDQbايإ
؟ LCC زراr
(* ر, M`Q, مM |, LQآا ُ$^X U/ ة5<
نأ
(* )
SAMI , AMMAR , AHMED , BASSAM , SANAD ,
MOSTAFA , READ , ALI , KAMAL ,AMIN)
(
؟ ُ,b ^X U$^#C
(* فW`, مM |, LQآاداX=ا
=ا
10
5
43 3
Trang 67
لTأ ++
C /
.
r
/ د
.
/ وA Kb $X دK6
.
/ ن6آ \Qb ,
/
X با,
.
0015 INFSC
/ stephenp
~ / edu pitt
www
Tutorial 2005
CS / bjin
~ / uk ac abdn
csd www
://
http
Trang 6868
com a 4 cb www Computer Books for Arab
... class="page_container" data- page="17">
(*
xzاADD
(*DEL
9)#include<iostream.h>
int p_q(){return a[head++];}
void del(int a[],int... class="page_container" data- page="18">
18
نإ cو YK-
إو S-
Uإ
10)#include<iostream.h>
int p_q(){return a[head++];}
void ser(int a[],int... class="page_container" data- page="11">
ح< 8Qbو
4)#include<iostream.h>
void push(struct stack*);
void pop(struct stack*);
int full(struct stack*);
int