Professional Documents
Culture Documents
2
3
ا
س
ا 5 ------------------------------------------------------------------
إ
هآ ا
ت6 ---------------------------------------------------
ا هآ ا
ت8 ------------------------------------------------------
أاع هآ ا
ت8 -------------------------------------------------------
ا
#$س )8 -------------------------------------------------------- (Stack
ً /ا
-ا15 ------------------------------------------------ (Queues) ,
ا
456ت 20 ----------------------------------------------------------------
ا
ا35 --------------------------------------------------------- (List) 8
ا
A$در 67 ----------------------------------------------------------------
ا
68 ------------------------------------------------------------------$CD
4
'(
! "# "$ %&
- ! ./)
)*! + #
)
4* ( # + - 0/1 # !2
$ ( 5!2 %6 * # %*. %.
. "1 8( - "#
)! 7 &
5! 9 #. 8* . : 4*
/
. .
. )*
# 5! 8 ;9
*
! = # . & >6' 4 #
?8
*
! )*@(.
* 8 =; 2
?8 %# . 8=
*! A %*; "#
4# % $ =
5B 2 C!* +
! (
>$
! > . @* . ?8 " 4 B!* ?8 4
. ? > ) G'* . H ,CD ( E'! .
* 8 "#
.
!
# =
) %
: B % >8 I$ * %#6
* 8 >*
! A "# 4 = %B # J G6 ?8 %D B
' K!* ! %* 6. 4*
$ @* 5 5
. L 8
. )=+
* I4
* 8
. >@! C.
CB ! ! > ! M N' . 8 *:
. # "# !* $*
A 4&
$ ?#
* #
5! 5$ I. I. /
. "1 N ?5$ %/ # B!
. ?* * )* * )** > - . >@!
.....
5
إ
هآ ا
ت
اةQ$
اQR, S TUK
اVW هX C وYK,اC K L5M ءO< 8
وع إF
اG
فI$
اJ
O#
-,اQ $ZUQ و[ةU, $ \
]C OQ
اTUK
اVW^ هX `ثC أنJ#$M OQ
^ت ا$K
وا
.SMb وc #F, K
ة إ
ا#
اTC
DATA ا
تO هO
e اLb`
ا8^X O JAADQ$ه آM`C L5M OQ
ا=<ء اJو
.Lb`
اS U^KC سb أO = هINFORMATION ^تK$
و ا
أن `ده ؟U
J#$M \^ت وآK$
اO ا
ت و هO ه$
.pb $ ُ-^r رُا أوT م أوGن [وف أو أر#C G ر#= أو اp`
اJ X$5 Oه/
ت
. Q5
K t$C ءO< JX ر#= واp`
اJ X$5/ ^تK$
وا
نv wx ا
اJ وQ5
K K, ا
تO^ت هK$
^ت أو أن اK$^
مD
دة ا$
اOإذن
ت ه
. 5
K$
اO ه8U, Obb=ا
ق ا
^ ا
تX 5
K$
أاع ا •
.xz ا.1
.
{ءzف أو اW`
ا.2
. |
ا.3
. ا
ز.4
!=, =) -U$
^ت ا$K
(وا/, -,*, +) ,6`
^ت ا$K
ام اDQb, LآQ
`^ واQ
ا.5
. (< ,>, <= ,>=,
.(SAVE) OوQ#
ا6U
ا.6
.
واM$`
ا.7
. JMDQ
واMKQ
ع واcQb
ا.8
5
K ا
تVW ه5
K$, ا
م8/
ُ ت أو, ^X لA`
اJ ,
^تK ^X A` O#
إذن
.``T
^تO-U$
اLآQ
واOM
اLآQ
• ا
5
K$^
زم4
اOU
اK
إ
اYxا أX ةX ^X آًا$QKC ا
ت5
K Xb أن5
-:Q$ أهJو
.6
اآة اW
اJ `دC اX
.اجrzل واrدz و[ات اJ `دC اX
VW هJ, ^تK$
دل اC)6
اآة اW
اS اجrzل واrدz اX C J `دC اX
.M O^$X ا
[ات أي
ل إT^
Xb L^-QM I OIQ
اK^
6U
وا5
K$^
|, دc وL^-QM ا=ولK
أن ا5
اآةW
اJ, M$
^ ا$X J ل4Gz ه اU$M يW
وا, لrدz ا
[ات اJ [رهz ^تK$
ا
^تO-U$
واOM
اLآQ
<رة إ
اz اJ ,
اW
اج وrzل واrدz وو[ات ا6
ا
رAQr, JU/
\ اMKC 5 t[
#F, |
^ت اK LCC اWن هv ا
| أيb O |$
اYc ه و/ O-U$
اLآQ
ا
. ``T M-, |
ا اW هW UC 8QM Q[ JK
O6U{$
اMF
اJMDQ
ط اb^ أوX ا
تLCC آOUKM وه/ OM
اLآQ
ا
أيYK,QC <ة أوM-, O6U{$
^ ا
ص اX ن ا
تDC t[ O6U{$
وا
ص ا
.b ^6^6C
UK ارزتr
ت وv JX رةX/ UK$
ا$
ت-K$
اOU, ا
ت وLاآCهآ ا
ت و
W UC ^X X6C % #/ )= = ' O c #F, p-C `, |
اSxC
6
^X L5M و8U وc #F, اآةW
اSGل ا4{Qb اJ وC$#
م اJ م6Cم و
. ارزD
اUK J t^r
وإc #F,
تe اVW هp-C |$
ا
ا
تVW` ه, اآةW
اO K
اK, S ص ا
تC و,اC YM Oه/ Y
O-U \MKQ,و
ًX ,-Q$
ا
ت اTUX J X$5$
MX U, QKQ اآةW
اO ًUK 4 ً # وه4#< WDQC
.َ `دُاxZ ]ديQ
[ واp6 O 8UC OQ
وا4 ً #<و
• ا هآ ا
ت
.اآةW
اO JK p6U, Obb= اU, وQK
ف إKQ
ا
ت و اSMزC O 8#`Q
ا
.p-U$
ء واU
اt[ J #b$Q وMG |ا, ءU,
. ^QD$
ا
ا| ا,Q آO ة#Q اع ق, أJ |$
اJ#$C
. اآةW
اJ ع ا
تcQb واJMDQ
اJر زAQr ا
• أاع هآ ا
ت
.(STATIC INFORMATION) Uآb Q,/ ت, هآ
C 4 ا
تVW ه85[ `يC L5 UX wMAQ
اUXت و456
اول وا5
ت وا5Q$
آ
..... `د$
ا$5[ قxzا
{ةQ `آQ إي#UMت د, هآ
JX
ع إU
ا اW ه86UMو
O
QQ r O 8UC OQ
اOوه/ {ةQ -r ت, (هآ1
. ^ ت$
ا
. 8 ا
ا
. ,ا-
ا
. تb#$
ا
. تM5,= ا
. تX$5$
ا
اD
ا, ر5<= ا/ اآةW
اO D OاFX #F, إيKFQ ت, (هآ2
..... ت5Q$
ا-bا, #CQb
آ ا, ً Sxا$
اVW هJX 8^#QUbو
7
(Stack) س#$
أو ُ
ا
وهtG] #F, Q,/ Y
, cاr وإQ,/
, ا
تJMDQ
صr ذج$ JX رةX / س#$
ا
رج أوD
ا اr أrا وا
اrرج أD
أو
اr
ا
ا, ا
تY, SxC وقUT JX رةX
LIFO (LAST INPUT FIRST OUTPUT)
ةr= اTT
ء واO< rج أDC
ا=وTT
س ا6$
اY-F, ^$X YF M أ6, ل$وآ
. top $6M [ ]< واcM ف وW`
^ واX= اJ 8QC xzا ن اW
ج أو ً
وDC
. top pM JX [ ف واJ ^ إيX= اJ 8QM Mوا
اءة أ
س#$
ا اJ• و
,6`
ا,KQ
ا8G د5M إ
OCاW
ء اXQb
ت اM{
مDQ6M
وزUM
, DQ6$
اK$
اض واQX
^ت ا$X O
X
ء ا
ا| اXQb ا
J M U $G ل أولr إدUX وTOP=-1 نI ُZس ر#$
ن ا#M UK
ار وا[ إ
أن$, MM <]$
ن ا$G U^r وآ أد++ TOP $G
. س#$
^¡ اQ$M
1- = <]$
ا$G AM إ
أنMار وا[ أ$, <]$
ا¢U U س#$
اJ 8
اج اr^ أ$Xو
.ُZس ر#$
ن ا#M آاNULL أو
:Z^, ^$X JCاآة وW
اO VTUX JMDCس و#$
ا$C • ق
. $G #< ^X
` إي#< ^X س#$
اTUK
O^`
ا,اQ$
ا$Q
ا
. M أ[دA #< ^X اآة إيW
اO TUK^
(COMPACT) اصQ$
ا$Q
ا
OC= ا#F
إ
اUU
ت5Q$
, س#$
ا$C ^X ل$وآ
8
O-Kb س#$
ن ا$G اجr( وإذا أرد إX) $G r أU^r( واد4 ) 85[ A UM
ض أنQ U
و
p,6
ا#F
اO $( آx) O وهt^r د$G r أU
9
w^-A$
ا اW ه8# DM
O,[س أ#$
ا$X Y
إU
JQM `xQ
ل ا#<z واp,6
ل ا$
اJو
ذآهOQ
^ ا$X Y
إOء وا[ أ
وهOF,
إUX \^QDM
وA$
اSTACK LM{
ا
.ً,b
pop اجrz دا
أO {Q
ن ا#b س#$
, $G اج اآDQb, مUb rل أ$وآ
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 (;;) top <0 ن#M UX ا
^ب$X \GQb
{if(top<0)break; أن
ا إW# وه8
, max $G رنUb
وإ
$G ^ اآX T[ Max wAM
else
if(max<a[top])max=a[top];top--;}
return max;
}
O آن ا
^بp,6
ا
| اO ف ه إن4Qr
اKC إي, cM
و6, وwxل وا$
أن اQXا
د
^اKM س#$
اJ 8
اOQUC UX وL^5
دا
اrا, ا
^بU^$X |
ا اW هO وbb=ا
ا
ا
^ زX U^A[ $G اآ
. BREAK \GQ
<ط ا$X ^X c
^[ أfor(;;) UK
امDQbون ا, U
ردUb وPrefix and Postfix ,KQ, اسG= ا¢` Mس أ#$
ت ا-C Jو
. س#$
ا
3) #include<iostream.h>
#include<conio.h> |
ة ا#
( wQ
{
س اQ JM{Q Kc ه
#include<stdlib.h>
) ق4Zz{
س اQو
void check(char[]); $G J MM سG ^X $M وآ
main(){clrscr();char s[100];
`^
¢AD$
{ اQ آ
cin>>s;check(s); ذا JQ$
اJX ا
^بO رنMو
getch();} سG J ق اآ4Zzس اG آن
void check(char s[]){char c;int i,x,y;x=y=0; مDQ6$^
b رS-M I wQ
ا
..... |
ا$X \GQMو
for (i=0;(c=s[i])!='\0';i++){
ذا JQ$
اMرن أM r= اOو
if(c=='('||c=='[')x++; r= اJ اآJM{Q$
آن إ[ى ا
else لG S-M
ء وإOF
ا$K,
KQ
ا
10
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";
}
<ح8Qbت و456
ت إي ا#
ا-bا,س و#$
ا-bا, إ
أp,6
ا ا
| اWوه
.ُ[
ت456
ا
4) #include<iostream.h>
#include<conio.h>
#include<string.h>
#define size 10
struct stack
{int top;
char a[size];}s;
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
11
cout<<"false";
getch();}
س#$
ت إ
ا, rC إنU L^ أ
ن إذا, U ذهO ^$X
س وا#$
ة ا# C G QXإ
أ
ن ا
J A$
اX-, ل مC
س و#$
ا$X
آ إWC و4 ُ ^G # ن#b
\ ذ# س#$
ا#KCو
..... ^$X J t^r ُ``T
اW Mا
ا
.......5KQ6C
^ [ول وK, ة#
اtCه ه أ
وء, O
Q
ا
| اSQC^ وX O^T إ
إذنOCIC 8
ة#
أن اO
وM
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--];}
12
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--];}
J ا
تU^ UK ^ ا
ت$K
JMrv Jb# امDQb ه اYC# t آp,6
اU5, O
ا
تK O#
/ س# UDQb اUU#
وt6#K اG ن ا
تO
س ا#$
س ا=ول إ
ا#$
ا
. س#$
ا$X
, وU t^ OQ
اM-
, O^T=س ا#$
إ
ا
OCاW
ء اXQb
ا-bا, س#$
, $G اآX ^$K
ل$
ا اW ه8#
وا
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; O {Q$
ا$G Å [ ا ا= هW هxو
} J جD UX ^م أنK$
اJ = اآةW
ا
int pop(){static int max=a[top--]; 8
اOQUCت و$C {اتQ$
اآة ن اW
ا
if(top<0)return max;
else
{if(max<a[top])max=a[top];top--;pop();}
}
س ؟#$
اJ $G ف إيW[ ^X $KM د#
ا اWوه
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();}
13
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--]<<" ";}
…………….
يW
ح وا
ك واد اF
ا اWع ا
رئ إ
ه4 اK, ضQ M وpF
اUXx J UQ اG ن# Uإ
ه
. ^[^ وX ربQ
^ ا
رئ اX وJMر$Q
اtGن [ن وe واCM G JM$C ` إيM ً أن,b هU[<
رة ؟#Q$
اد اX=ف اW`, س إي#$
اJ رة#Q$
اد اX=اج اDQb, مM |, LQ*( اآ
س ؟# LCC ^$K, مM |, LQ*( اآ
م؟DQ6$
اJ ,^-$
زا[ اz اL6[ ادXÉ
ل$< وJ$M [^ إزا$K, مM |, LQ*(اآ
ح ( ؟,`دC ا,SC) -U$
^ت ا$K
اS$c $KM وJb# |, مM |, LQ*( اآ
؟rس أ#$, Mس وا
د#$, cاد ا
وX= اM`Q, مM |, LQ*( اآ
س ؟#$
اJ
اد ا=وX=ف اW`, مM |, LQ*( اآ
14
رQ
ت ا45b ( أوQueues) ,ا-
ً ا/
رقS tG] #F, ^تK$
اJMDQ
س#$
اYFM و-D
هآ ا
ت اJ رة عX Oوه
FIFO (First Input First Output) هcاr^ت وإK$
ل اrدz SQ$
ا8UQ
أن اO J$#M
ر,-^
cM ا=م إيJ فW`
واMU
اJ xz^ ا$X ن#C رج أو
إيD
أو
اrإي ا
ا
xz اUX وtail or rear $6M وMW
و]< اhead or front $6M ]< ا
أس وJM<]
AC ن ا
ت#Q Mا[ أ, ا
أس$G M U فW`
اUXا[ و, MW
ا$G J M U
Obر$
ر ا,-
, <اآة إي أW
, G Q SG^ اX t6
وr #< ^X ,رQ
وQQ #F,
. A ^
r داL
ه أولx[ L
ولI
. FQ6$
أو ا6b]$
اUX ادÊ
رQ
ر ا, YFM
,ا-
أاع ا
. A$
ا85[ وي6C MW
ا$G ن#C أنY4Q `ود و<ط ا85[ Y
وه/ O-r ر, (1
و1= ا
أسp,6
اJX \^QDM ء4Q
إ
أن <ط اp,6
\ اMKC / ر داي, (2
. 1+MW
أو ا
أس=اY5Q$
ا85[= MW
ا
-: O-D
ر ا,-
`ث إ
اQ
, أUbو
HEAD
$G إ
إيrC 8
ر,-
أن اK$
وSG ]<ان =يM
MW
ن ا
أس وا#M M ا
اO 5
TAIL
if(tail==-1||head==-1) ن#M UX
HEAD
0 = MW
ا
أس وا$G wAM $G ل أولr إدUXو
1
TAIL
15
HEAD
ه$ آM ا[ أم ا
أس, MW
ا$G J M $G OIC لr إدUXو
1 2
ر أن6
^ اX يW
ا#F
اJ Å[4
ار$, زادMW
ن اx U x أUX
. ^X <]M wTوا[ وأ
ر ن,-
اJ $G Ucr أUXو
ج ا=وDQb t^r د$G أول
وزدa . tcr G #F
ا اW هOو
<]M wTا[ وأ, ا
أس$G J
. ةK, يW
^ اX
ر,-
, |, ا اولWوه
8) #include<iostream.h>
#include<conio.h>
int size=10;
int a[10],tail=-1,head=-1;
16
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++];}
ر,-
^ اX -$
^ت ا$K
د ا6, أUbو
ADD xz*(ا
p,6
د ا#
^ ه ا$K
اVW
S,Q
د ا#
وا
DEL فW`
*(ا
^$K
اVW
د#
ا اWوه
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++];}
17
if(t2==-1){h2=t2=0;x[t2]=a[m];}
else
x[++t2]=a[m];
}m++;}head=tail=-1; ر, p^r
| ه, DQ6$
ة ا#
ا
while(t2>=h2){ OQ
ا$
ا اX 8
اS$c لr وإدMc
if(tail==-1){head=tail=0;a[tail]=x[h2];} ر,-
ا8C W[ اد$
ا$
وي ا6C
else 8M^
M5
ا
a[++tail]=x[h2];
h2++; }
}
`
*( ا
ر و وو, p^D,
مU إ
إp,6
ا
| ا
. ^X A` 8
U إS-
وإYK- c^ إن وX ` U إ,
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++];}
JMر, |*( د
د#
` اM ^ ا
رئ أنXة ا
| و# ذآIb
ر ا=ول,-
ا8G بKQb
[ آ6 Y c, O
ر ا,-
أن اJ آIQ
اL5M
أو
18
Ce اG4K
اJو
8/ (\Q6$
ر ا,-
ا85[ - ^rا, TUK
د اX)>=( 8
د اX-Obb= اO دةc$
اTUK
د اX)
. ا=ولO O
ر ا,-
ذ
\ اK,
,ا-
اLCC(*
Y
ر أ,-
اLCM LCQ
^ ا$X أنLQ#
أآ اO تc وGر و,-
ا$X Y
, LCQ
آد ا8#
وا
.ء-r Y اQXا اW وهA$
اLCC
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();}
-:ر ا
اي,-
ا/
طF
أوا اO ن#b ف4Qr
ُ وا,b ذآهOQ
ا
ا| ا
. if(head==tail+1) ُZر ر,-
ن ا#M
. if(tail!=size&&head=1) ¡^Q$ Z ر,-
ن ا#M
.if(head==1&&tail==size) R^Q$ ر,-
ن ا#M
.ر,-
ا, ,ا-
^ اX p-C س#$
, C ذآOQ
و ا
ا| ا
.JMر$Q
اVW هW UC ^X درُاG ن#M ر وان,-
ة ا# t`C اG ن#M ^ ا
رئ أنX L5M Uوإ
ه
,ا-
^ اX JMر$C
ر ؟, #K, مM |, LQ*( اآ
م ؟DQ6$
اG J ن `د# J ر, A , مM |, LQ*( اآ
ر ؟,-
, c ا
وSGا$
ف اW`, مM |, LQ*( اآ
ل ؟$< وJ$M Jه5C
, ر, MوQ, مM |, LQ*( اآ
// ¢
وا6U
اJ, قcM [4 //ر ؟,
س إ# 6U, مM |, LQ*( اآ
¢DF
ة اI5 رQ
\ اT O 8 وه5
إ1 J J$G وFQ6$
اO 8ص وهD< أ, ر, M
(*
VW
| هKC \# = [
رY
rد , L-
اI رQ
ا$`Q6M
ي وG Sc, LT أ3 8Gر
أو ً
؟r ا
اL-^
ً أوOC=ر ا,-
ارز اr إ
وp-Q, ^#F$
ا
19
• ا
آ ا
#UM
و Gأن T C O rا
ا 8ا=[د Mوا
^,W$وا=<5ر Ubم 6,د JX AQDآ ا
KQ
Sا
456ت ,ا
#ت وا
<]$ات.
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
•
/ا
ا(List) 8
وه Oع Jهآ ا
ت ا
J X$5 J \
IQC -Dا
M4Dا
$ا U, $ -,وآ AUX
X $6Mة وه VWا
Kة [^ 8^
[ Jو[ UK
<]Mان
^Kة ا
Wي K,ه أو ^Gأو NULL
و $KQ6Cه VWا
^
$^#إ
Mا
, `4و Jا
J#$$أن \
IQCا
Kة ^Xأآ <] Jو^Kت
إي #Q , 8Gن (block) X$5 J$xأو آ , ^Qو
<]M <] J ,إ
أول Xة و]< <]Mإ
أX rة إي ا
,-ر .
أاع ا
ا8
ا
ا 8ا=[د.M
ا
ا 8ا
^,W$أي ا
.U
ا
ا 8ا
ا.M
وUbأ `Q
,ث JXا
ا 8ا=[د / Mو [ YFCا
{ ^X p^KC 6ا
ت ُ
QCإذا آن اzدrل O
ا
tGوUX cMان را <]M Obإ
أول J AUXا
`4و head $6MوUX cMان
<]M Oإ
أ J AUX rا
`4و tail $6Mوآ Xة <]Cإ
ا
Kة ا
QوأX rة
#Cن $Gا
NULL
<]$و #Cن #F
,ا=-: OC
و
Jا
وري أن #Cن ا
O O
QQ #F, C Kا
Wاآة #C Oن Kة Oا
Wاآة
ن
ا
5ز ا
Wي 5`Mه Oا
Wاآة و
ا
زر
, U, $ ^AQ U#ا -bا
<]$ات وهWا ا
JM #F
آ\ Cـ#ن <. ^#
*( آ \MKCا
#ا
Kم
^ا 8ا=[دM
;};Struct list{ int elem;list*next UKهWا ا
` ؟
J <] VUKع ا
Y6 56أي <]M
إ
5bأ J rع ا
56أي S-Q6
ا
Tل إ
5bأ rوأ rووووووو إ
Mو#Mن ,ا rا
Kة SGا
Kة ا
OQ
K,ه أو .^G
أي
WQUآ أ[ ^X Oا
`^ [ Lأن ,ا^r
Tرة ا
6 ^Kو ,ا rا
Aرة
ا
Aرة ا
^Kوووو إ
M
وا
56ه Uا
OFء [ أن داX ^rة
و,ا rا
Kة Xة وهW#ا .
35
ة أاعX xÊ
و
J$
اJ xzا •
ر6
اJ xzا •
ن# أيJ xzا •
$^
J$
اJ xz وه ا8 ا
اVW
ى أول لUbو
12)#include<iostream.h>
#include<conio.h> وه ا
أس56
<] list عJ head UX Uه
struct list{int d;list*next;}; MW
وه ا56
<] list عJ tail و
void main(void){clrscr(); . K
ت ا, لrدz {Q$ آYDQ6Ub node و
list *head,*node,*tile;
int i=0;
node=new list;node->next=NULL; JX دةU ن#C أن,
وMورx Oة وه-r أولUه
cin>>node->d;tail=head=node; . ةX ولI, MW
وي ا
أس وا6 O#
Cاrأ
5b ة أيMc ةX O
SUT اVUK node=new list =ا
while(i<4){
اآةW
,
node=new list; ^X <]M
ةK
[ اKc أيNode->next=NULL
cin>>node->d; O
r ة أيX
node->next=NULL; . #F
ا اW, أيU[ ةM5
ة اK
, وا
أسMW
اUMوb 8/
tail->next=node;
tail=node;
i++;}
node=head;i=1;
while(node!=NULL){cout<<endl<<i++<<" "<<node->d;node=node->next;}
getch();
} لT
ه اY^$KC أنL5M O< أولK
اX O^$X O
ا=وL5, x أX 4 ن#Ub Uه
أولF^ أن أول أG آWQC
$KQb \# ةX =ول . X 5 UMن ل\د#
U x ذ
آن آ أK, و, MW
ا
أس واUMوb ةX pb G O
ا=ول وا-6
ا
^ب اO
K
ة اr]$, MW
اwT وأMW
اK `كC ةMc ةX
أم اY[<
K
اMا, O وا
أس ةK
أي [ اTail->next=node
O, ة وX إ
أولU^Tن و#U
أس, دU
وي ا6 إذن ةM5
ة اK
وي ا6M
ا=و
^$K
اVW,
Q
ة اK
إ
اUQ
واQX
إU^X J, ,
^ ا$X t$C
`
اVW
node=node->next ةK
إ
اMW
اU^X O, JCK
ا
ةK
وي [ ا6C ^X J Gي واW
ة اK
ه أن اUKو K
اOG, اW# وهtail=node ةM5
ا
U^Q اG ن#
W
Q
ة اK
اSG ^rي داW
ا6 JM#C U#$M ا
^ب و$X OQUM إ
أن
ةK
وي ا6C ^ إ
أن$K
اVW ه$Q6C
وQ
ة اK
إ
ا O #F
واM-
اVW, K
ت اR
. ا
^ب$X OQU NULL . حF
اJM b=ا
هK, ا
وK
ل اr^ إد$K, ف4Qr
إ
أن اp,6
ر ا6
اJ xzأم ا
while(i<4){ [4
node=new list; `كQ ن ا
أس#M J$
اJ xzا
cin>>node->d; `كQ$
ه اMW
ن ا#M J$
اJ xzوا
36
node->next=head;
head=node;
i++;}
مDQ6$
اVMM AUX K, ةX x| إ, اWوه
#include<iostream.h>
#include<conio.h>
struct list{int d;list*next;};
void main(void){clrscr();
list *head,*node,*tile,*k;
int i=0,x,y;
node=new list;cin>>node->d;node->next=NULL;
tile=head=node;
while(i<3){
node=new list;
cin>>node->d;
node->next=NULL;
tile->next=node;
tile=node;i++;
}
node=head;i=1;
while(node!=NULL){cout<<endl<<i<<" "<<node->d;i++;node=node->next;}
cout<<"\n ENTER VAL\n";cin>>x;
node=head;
while(node!=NULL)
{if(node->d==x){k=new list;cin>>k->d;k->next=node->next;node->next=k;break;}
node=node->next;}
node=head;i=1;
while(node!=NULL){cout<<endl<<i<<" "<<node->d;i++;node=node->next;}
getch();
}
مDQ6$
اJ U^ K
ل اr إدK,
$
اVWت هcذا و $G لrإد
هK, ةM5
ة اK
اSUb $
,
<ة
c إذا وAUK
اJX t`, ^$X U^$K
ةMc ةX ءF^ إX $KUb U
[ ,Ubة وK
ا$G rUbو
K, OQ
ة اK
, ةM5
ة اK
]< ا
^X J G واU
زOQ
ة اK
واAUK
ا
#F
ة واM5
ة اK
, ]<ه, ر8C
. . ^$K
اVW هJM b= اO يW
ا
37
^X $KU
,ا-
ت واb#$
اJX U$^#C وQ,
أي اY#CQb
ا
آ اJX U/`C ا=ولA
اO
G س#$
ا$bء أO< J ¢^DQ و#UM{ة أي دQ ^K5 وM ا=[د8
ا, ارزتD
^ اC p-C
اجrzل واrدz وا
اM ا=[د8ام ا
اDQb, س#$
اJX رد لUb ^¡ وأ
نQ اG ر,-
^¡ أو اQا
. p,6
اA
اO UX U$^#C G
د#
ا8#
وا
#include<iostream.h>
#include<conio.h>
#include<math.h>
struct stck {int data;stck*last;};
push(stck*&,int);
int pop(stck*&);
void main(){clrscr();int i;stck*top=NULL;
for(i=1;i<6;i++)push(top,i);
while(top!=NULL)cout<<pop(top)<<endl;
getch();}
push(stck*&top,int i){stck*k;
if(top==NULL){k=new stck;k->data=i;k->last=NULL;top=k;}
else
{k=new stck;k->data=i;k->last=top;top=k;}
}
int pop(stck*&top){stck*k=top;top=top->last;return k->data;}
$
ا-bا, س# LCC ^X $KM د#
ا اWوه
#include<iostream.h>
#include<conio.h>
struct list {int a;list*last;};
push(list**,int);
pup(list*);
shlist(list*);
void main(){clrscr();list*top,*node;node=top=NULL;
top=new list;top->a=1;top->last=NULL;
for(int i=1;i<6;i++)push(&top,i+1);
shlist(top);cout<<endl;
pup(top);
shlist(top);cout<<endl;
getch();}
38
for(i=f;i->next!=0;i=i->next)
for(j=i->next;j!=0;j=j->next)
if(i->a>j->a){int k=i->a;i->a=j->a;j->a=k;}
k=f;n=p;
while(k!=NULL){n->a=k->a; k=k->next;n=n->last;}
}
rس أ#$, c وا
وrس أ#$, Mاد ا
دX= اKc ^X $K $
, س# JX رةX د#
ا اWوه
#include<iostream.h>
#include<conio.h>
struct list
{int a;list*last;};
push(list**,int);
pup(list*,list*&,list*&);
shlist(list*);
void main(){clrscr();list*top,*top2,*top3;top2=top3=top=NULL;
top=new list;top->a=1;top->last=NULL;
for(int i=1;i<10;i++)push(&top,i+1);
shlist(top);
pup(top,top2,top3);
shlist(top3);
shlist(top2);
getch();}
39
struct list{int d;list*last;};
void c(list*&);
void main(){clrscr();list*top,*node;int a[]={2,3,6,1,9,8,5,7,6,1,3,2,55,6,1,7,8,6};
node=new list;node->d=a[0];node->last=NULL;top=node;
for(int i=1;i<13;i++){node=new list;node->d=a[i+1];node->last=top;top=node;}
node=top;
while(node!=NULL){cout<<node->d<<" ";node=node->last;}
c(top);cout<<endl;
node=top;
while(node!=NULL){cout<<node->d<<" ";node=node->last;}
getch();}
40
node=p;
while(node!=NULL){cout<<node->d<<" ";node=node->next;}
getch();
}
.,ا-
, ^=^ اC p-M ^ ا
رئ أنX M ا=[د$
, س#$
اp-C J V ذآS$cو
فW`
^ ا$X JX 8^#Q أ
ن أنU
M M ا=[د$
, X أاS$5, xz^ ا$X ^X t$^#C أنK,و
.
[ ت-C J ورM و
يW
اAUK
^ اT وTQ , -D
اT
` اO -6, ^$X ه/ (DELETE) فW`
*(ا
. xz^ ا$K
6#X ^$X QKQ YW[ ادM يW
اAUK
ان اUK, YW[ اد$
اAUK
اG OCIM
^$Q`$
ا5
ء ا-r= أJ M$`
ا
O ^5 فW[ MC UK (delete) eا اW, W`C 8C U لQ
أو
اL5M ةX فW[ UX .1
. U$
م اC 8/ U$
اJ وجD
^ اX O{U U همMC UXف وW`M
حQ وز وهUM
ا
.{^
ا8cQ ق4Zز أو إ5
اp^KC O L6M CG -r |QUM Y [4$
اVW هO ه5Q
إن ا.2
node=head;
while(node!=NULL){cout<<node->d<<" ";node=node->next;}
41
getch();
}
ةK
, ^G يW
ة اK^
<]$
{ [ ا8C W[ اد$
ة اK
اJX t`
ا8QM b
اJ فW`
اY^$Xو
ةK
اY$G r M {Q$
ا اW{ وهQ Kc ^$K, [ار وا$, v ورOF$M <] K5,
ذ8QMه وK, OQ
ا
. هK, OQ
ة اK^
QU 8C
42
.^AQ$
اM ا=[د8 ا
ا
. ]< إ
ا
أسb MW
ة ا=و
أي ]< اK
ة إ
اr=ة اK
]< اFM [
,, w$6C إذ5
اOت و-K$
ك اU, إدارة$ أO ^ آًاAQ$
ا8 ا
اV ه$KQ6Cو
. U, $ ¢AD
اU, SQ$QC OQ
اTUK
ا
#include<iostream.h>
#include<conio.h>
struct list{int d;list*next;};
void main(void){clrscr();
list *head,*node,*tile;
int i=0;
node=new list;
cin>>node->d;node->next=NULL;tile=head=node;
while(i<5){
node=new list;
cin>>node->d;
node->next=head;
tile->next=node;
tile=node;i++;
}
node=head;
do
{cout<<node->d<<" ";
node=node->next;}while(node!=head);
getch();
}
ً إMو6 $
اO ةX ]< أيK5 -D
ا$G
إM ا
ا$
اM`C MC UXو
. ^AQ $G
`ل إQQ (NULL)
43
ر
*(اآ
م
أد
؟
*(اآ
م "
أي
أد
؟
*(اآ
م "
ا#ا %ا(#و&
%ا$#د
أي swap؟
*(اآ
م ./ف ا#ا %ا(#و&
#ا0د
؟
*(اآ
م 6أد و %& 5ا34#ت ا , %8)
1#ا/د 8 ,ح ( ؟
*(اآ
م >;
= <#اآ;
ا
#؟
*(اآ
م
8ر ا?>
ا
#ا0د
؟
*(اآ
ا?>
ا6#وال م >;
=B <#ع اآ; ا @#و
;8ا6 0اد
#ا0د
5D
) 21 %;>K (1,2,7,9,5,6وا6 Lاد 7,9,5؟
*(اآ
م 5Dت ا
#أ0د
PKا.#اآة .Nا ا 5M#؟
44
.U
^ ا,W$
ا8 ا
ا
<]M <] JM<]
^,W$
ا8 [ أن ا
ا#K
اJ#
وYM أ[د8اG U
ا8 ا
اQKC
. last $6M ,6
ة اK
إ
اFM <] وnext $6M
وQ
ة اK
إ
ا
5
K |, آWQU
وUK ^تK L^5
ع إ
وراءc^
جQ` UX 8 ا
اVW ه$KQ6Cو
.4
ً [فMKQ
دة إ
ا
رىK
اS-Q6M ص [ أAU
ا
مK
ا#
ن ا#Mو
Struct list{int elem,list *next,*last;} ;
. 8 ا
اVW ه#< U
wQM p,6
ا#F
اJو
.^,W$
ا8^ ا
اX p-Qb M ا=[د8^ ا
اX t OQ
^ت ا$K
و ا
.xz^ ا$X O أ
وهY^$X ولI, وأ
^$K
اVW
د#
ا اWوه
#include<iostream.h> وه ا
أس56
<] list عJ head UX Uه
#include<conio.h> MW
وه ا56
<] list عJ tail و
struct list{ . K
ت ا, لrدz {Q$ آYDQ6Ub node و
int a;
list*next; JX دةU ن#C أن,
وMورx Oة وه-r أولUه
list*last; . ةX ولI, MW
وي ا
أس وا6 O#
Cاrأ
} 5b ة أيMc ةX O
SUT اVUK node=new list =ا
اآةW
,
main(){clrscr(); [ Kc أيNode->last= Node->next=NULL
int i,j;list *node,*head,*tile; O
r ة أيX ^X <]M
ةK
ا
node=new list;cin>>node->a; . #F
ا اW, أيU[ ةM5
ة اK
, وا
أسMW
اUMوb 8/
node->next= node->last =NULL;
tile=head=node;
for(i=1;i<5;i++){node=new list;
cin>>node->a;
node->next=NULL; . X 5 UM
ن#
ا=وL5, x أX 4 ن#Ub Uه
node->last=tile;
أم اY[< pb G O
ا=ول وا-6
ا
^ب اO
ةK
وي ا6M
ة اK
أي [ اnode->last= Tail
tile->next=node;
.MW
إي ا$M
ا
tile=node; انUX
إJ MW
[ اM`C O هTail->next=node
} .ةM5
ة اK
ا
node=head; MW
اU^X O, JCK
اJ, ,
^ ا$X t$C
`
اVW
while(node!=NULL){ إ
أنK
اOG, اW# وهtail=node ةM5
ة اK
إ
ا
cout<<node->a<<" "; M-
اVW, K
ت اR JM#C U#$M ا
^ب و$X OQUM
. حF
اJM b= اO #F
وا
node=node->next;}
45
getch();}
هK, ا
وK
ل اr^ إد$K, ف4Qr
إ
أن اp,6
ر ا6
اJ xzأم ا
while(i<4){
node=new list;
[4
cin>>node->d;
`آQ ن ا
أس#M J$
اJ xzا
node->next=head;
`كQ$
ه اMW
ن ا#M J$
اJ xzوا
head->last=node;
node->last=NULL;
head=node;}
<]$
دة اMف ه ز4Qr4 U
ا8^ ا
اX p-C M ا=[د8 ا
اO ذآهOQ
و ا
ا| ا
.ةM5
ة اK
, -, ورO ^D
ا
U/ $G LCC ^$K
د#
ا اW ه8#
وا
#include<iostream.h>
#include<conio.h>
struct list{int a;list*next;list*last;};
main(){clrscr();
int j,i;list *k,*kk,*node,*head,*tile;
node=new list;cin>>node->a;node->next=NULL;node-
>last=NULL;tile=head=node;
for(i=1;i<5;i++){ 56
ع اJ JM{Q UX
node=new list;
cin>>node->a; LCQ آLCQ
^ ا$K, U^KCو
node->next=NULL; وK ارزD
اVW وهA
node->last=tile;
tile->next=node; . Mc
و
tile=node;
}
for(kk=head;kk!=0;kk=kk->next)
for(k=head;k!=0;k=k->next)if(kk->a>k->a)
{j=kk->a;kk->a=k->a;k->a=j;}
node=head;
while(node!=NULL){cout<<node->a<<" ";node=node->next;}
getch();
}
46
بQ#$
د ا#^
UM ون أن, ل$
ا اW^ ا
رئ [ هX O{UM
؟J$
اJ cر و ا
و6
اJ Mاد ا
دXzل اr^ إدX $KM |, LQ*( اآ
! tG^
عx وc
ج إQ`C
ًا وc ^b O |
ة ا# t FQه اآ
`T
وv ^X و$` b ا=ارSUار وb=ن اK ^X O^A يMXM ة#
اwQC 8
ان
. د#
ا اW هSQCا=ر و
#include<iostream.h>
#include<conio.h>
struct list{int a;list*next;list*last;};
main(){clrscr();
int j,i;list*node,*head,*tile;
node=new list;
cin>>node->a;
node->next= node->last=NULL; tile=head=node;
for(i=1;i<5;i++){
node=new list;
cin>>node->a; 8QM ةX ء أولF إK, Oة ا
| ه#
if(node->a%2==0){ ةX O/ ءFإ
node->next=NULL;
node->last=tile; 8QM
ذK,^ وr دا$
ل اr إد8QMو
tile->next=node; xz ن اYc زوtذا آ $
ا¢` C
tile=node; } J xzن ا#Qb
وإJ$
اJ ن#Qb
else .ر6
ا
{node->next=head; .K
ل اr إدOQUM إ
إن8QM اWوه
node->last=NULL;
head->last=node; . OU
^ اX Ï^ اTو
head=node;}
}
node=head;
while(node!=NULL){cout<<node->a<<" ";node=node->next;}
getch();
}
ا
وال-bا, و$
, ةX ف إيW[ ^X $KM د#
ا اWوه
#include<iostream.h>
<] و56
اSG$,
^اU^b أرU إÅ[4
#include<conio.h>
struct list{int a;list*next,*last;};
Y
أ
اr{ داC ف أوW[ A[ ^ 56^
void f(list*&,list*&,int);
M وأO6
ا
| اr{ داQ6
main(){clrscr();list *node,*head,*h,*tail; #F
ا اW, UX
node=new list; {C ن إيvoid f(list**,list**,int)
node->a=1;node->next=node->last= |
اr{ داQb I
ا
اr داK^
NULL;head=tail=node; O6
ا
for(int i=1;i<5;i++){ #F
ا اW,
\ ا
اMKC أم إذا آن
node=new list; ^$X ن إيvoid f(list*,list*,int)
node->a=i+1; . O6
| ا, {QC
K^
فW[
node->last=tail; O#
YC ذآS$c p-M ^ ا
رئ إنXو
node->next=NULL; .آIQM
47
tail->next=node;
tail=node;}
node=head;
while(node!=NULL){cout<<node->a<<" ":;node=node->next;}
cin>>i;
f(*&head,*&tail,i);
node=head;cout<<endl;
while(node!=NULL){cout<<node->a<<" ";node=node->next;}
getch();}
void f(list*&head,list*&tail,int i)
{list*node;node=head;
while(--i>0&&node!=NULL){node=node->next;}
if(node->last==NULL){node->next->last=NULL;head=node->next;delete
node;}
else
if(node->next==NULL){node->last->next=NULL;delete tail;tail=node;}
else
{node->last->next=node->next;
node->next->last=node->last;
delete node;}
} ف./#
إي اRS
# NTK أس# اPة ه64# اW إذا آY$Y طM#ا ا. هPK
_" ظ$/#ط ه اM#ا ا.ة ه6K
و#/#[ ا.ا
و?;^ وان "\ ه6;# ا
.ة64#ف ا. a# ذ64 م وb# 6ار وا6
" أس وه#ن ا
وإ
ً إيe
اRS
# NTK 5.# اPة ه64# اW إذا آY$Y طM#ا ا. هPK
ط هM#ا ا.ة ه6K
و#/#[ ا.
و?;^ وان "\ هN\#ف ا./#ا
ة64#ف ا. a# ذ64 وf"g"# 6ار وا6
" وه5.#ظ "_ ن ا$/#ا
.
وإ
48
JQU/ JQ$G |^ دX $K, يW
د ا#
ا اW ه8#
وا
#include<iostream.h>
#include<conio.h>
struct list
{int d;list*next;list*last;};
main(){clrscr();list*head,*tail,*node,*w,*tail2,*head2;
cout<<"ENTRER LIST 1 \n";
node=new list;cin>>node->d;node->next=node->last=NULL;tail=head=node;
for(int i=1;i<5;i++)
{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++)
{node=new list;cin>>node->d;node->next=NULL;
node->last=tail2;tail2->next=node;tail2=node;}
tail->next=head2;head2->last=tail;tail=tail2;
head2=tail2=NULL;delete tail2,head2;
for(w=head;w!=NULL;w=w->next)cout<<w->d<<" ";
getch();}
. LKC ج إ
<ح أوQ`M
ح وx
ا8C أO |
أن اQX^ اX
U
ا$
اO c ا
وSGا$
ف اW[ ^X $KM د#
ا اWوه
#include<iostream.h>
#include<conio.h>
struct list{int a;list*next,*last;};
main(){clrscr();
list *node,*head,*h,*tail,*k;
node=new list;
node->a=1;node->next-NULL;node->last=NULL;head=tail=node;
for(int i=1;i<20;i++){
node=new list;
node->a=i+1;
node->last=tail;
node->next=NULL;
tail->next=node;
tail=node;}
node=head;while(node!=NULL){cout<<node->a<<" ";node=node->next;}
i=0;cout<<endl;node=head;
while(node!=NULL){
if(i++%2==0)
if(node==head){k=node;head=head->next;head->last=NULL;}
49
else
if(node==tail){k=node;tail=node->last;tail->next=NULL;}
else
{k=node;node->last->next=node->next;node->next->last=node->last;}
node=node->next; delete k;}
node=head;while(node!=NULL){cout<<node->a<<" ";node=node->next;}
getch();}
أن إيY
J$x اOUI ا
رئ$ إذاtQ آOQ
ا
آاد اVW^ وه,W$
ا8 ا
ا$X t`C اG Uإ
ه
^X L`
^ اX ة4A
اJ #M أنYU جQ`M , tG^
عx
م و4 آ4, ^X L5b Ycاb ]الb
. Jv 8^
اJMW
م اM
ا
م إJ 8^6Q
^ات واA
أ ا
8 ل
#F
ا اW, ا
ت# ا
ت وهVW^ هrا, $G UM
ض أنQ U
\
\ أI ز5
ا أW^ هX YU وأهY
رك, أOUI `^
UM ون, |
ا اW هSQC ف ا
رئX إذا
. يMX M وك
T4r
: -bا, w ا
^ا5
K ارزمr J$/ أن رU# ,
. اآةW
اO {لF$
ا85`
ا
.
$KQbره أو اX Lc ا
اJ OQ
]<ات ا$
د اX
50
$Cر ^X JMا
A
*( هWا ا
]6ال
^رئ ا
, ----- Uا -bا
$ا=[د Mاآ $X $KM |, LQا
$ا
Uإي #Mن
ا
#ا
Kم
# Y$ن JM{Q Jإي last \^D^
<]M <] cM
next , int
S-Q6ا
Kدة
^ \^Dة و ...... JCا
؟
*( ,ا -bا
ا 8أ
YUاآM |, LQم [Wف ا
$ا SGا=و
Jه VWا
$وKوف إن اXzاد
ا=و
) (1,2,3,5,7,9,11,13,…..؟
*( ,ا -bأ
Kد YMأو ا
#Qار اآX X ^X $KM |, LQد ا
Kا
U؟
*( S$cا= ^Rbا
OQذآت Oا
Aل ا
^X O{UM ,6ا
رئ
, -Cا 8ا
U؟
*(اآM |, LQم , $Q,ت هWا ا
O #Fا
Wاآة SاXة ع ا
ا 8؟
51
.Trees ر5<= ا
J د `دX ن وأوراق وb وX J ن#QQ C {
إي اKFQ$
هآ ا
ت اJ عOه
root MرW5
ع اQ
ا- $6C ع و[ةC - ة5< #
(nodes) عC ط$6C TUK
ا
M ذر5 8
وإذا. t1 ,t2,t3,t4 …… ات5< J X$5 O هX
اU
اOG, [ إنnode
اW^ هX U, $ ^QD$
^ت اK$
ا,
M ن#Q (leaf node) G ور$6Q عC -U
. #F
ا
J Roo
Edge t
s
Node
Z A s
B R D
Q K A F L Leave
s
ة5F^
bb= اTUK
ا
. 5
أو اT=ة اX XC^ وX= ا#F
, wx$
( اJ) root رW5
ا
. ءU,= ا$6C A ,Z K
ا
. (branch) $6M J,
واT= اJ, ,
ا
#F
اO $( آleave) Q,K,F,L G ور$6Q ءU,
أcM
OQ
ة اK
ا
.wx$
ا
. R وه8X
Q ةK
ا
#F^
U
,( وtree) 4ُ # ه#FM Y6 وهT= ا#
ا8 c X$5 ه/ OX
ا#
ا
. O^T= ا#
اJ ُX 4
ُ #
رُاc #FM Z,A أن5 p,6
ا
2
+
a b
.ر5<=, 56
ا$C J#$ / ت456
ا
. تX$5$
ا
AND,AT,ADD,BDDMBAND,BATTLE ت$^#
اVW هUM
J#^ / ا
ا
52
#F
ا اW, ت$^#
اVW
ي5F
ا#F
ن ا#
A
B
M
D N T A I
A
D N T
D D D N N
D
T D T
K
د اX $U, ً[ 35 وي6M ت$^#
د [وف اX ت وآن$^#
^ اC $C 8C \ آÅ[4
اVWاآة وهW
اO ن ا=[فD
SGة اX رAQr ا8C Y اOUKM اW 24 وي6M wTأ
. ر5<= ا ا8 أهJ x
ج إQ`C OQ
ا6$
`^ اC O $$
اول ا5
اJ ول ا
اراتc QKM و/ ول ا
اراتc
. C^K$
ا$=`^ اC O X6Cو. 5,
ن#Cى و6
اMرW
ا$6Q JQM ذرU AUX #
ن#M OQ
ة ا5F
اO ه/ U
ة ا5F
ا
. 8
ار ا#Q, w$6C
وCر وW5
اJ ن اآ#Q U$
اMرW
ر واW5
اJ {Tا
Qارزr وU
^ ا
آ اX ^QD$
^ت ا$K
ا
. (Infix) t,/ #F, OU
ا#^
(Inorder taversal) pbUQ$
ور ا$
ا
t,
اG #<
إ#
اU
(preorder traversal) ق6C
اG ور$
ا
.OxM
اKQ^
(prefix)
53
K, #<
إ#
إ
اU
(postorder traversal) ق6C
اK, ور$
ا
. OxM
اKQ^
(postfix) t,
ا
preorder , :/4
اbb=ق ا-
اL6[ U
ات ا5F
ر اX 8QM / ^ت$K
اT4r
. رW5
رة اM ز8QC Q `دM LCC آ. inorder ,postorder
postorder و, ى6
اMرW
اK, رW5
ار اM inorder و,
ر أوW5
ار اM preorder O
. ًاrر اW5
ار اM
: U
ة ا5F
ا$C ق
:ق-
اVW هO^M $ رسUbت و5Q$
, $C و,8 ا
ا-bا, ة قK, $C ة5F
أن ا
وي6M ة5F
اVW هTUX دX ن (H) p$K, $QU U/ ة5F
اt إذا آ
$M يW
ا5Q$
اTUX دX وK
اM أ[دA$, $C ^X( و2^(H+1)-1)
M-
اVWات ه$ و. (2^(H+1)-1) وي6M ة5F
ا
.
6U
, ا=بSG M`C 6
اJ$ J,
ة اK
اSG t-Xذا أ
6
ا
.(n/2)ً``T ن#M ا=بSG ن A$
اJ n SG$
اO J,
ة اK
اt^ آ
اآةW
اSGن ا#C [ انC ور6, , 5
{ت اO
6, p-C
. ة <ةQ Q,
ا
M-
اVWب هXو
اW وهA$
اO b^ وأX ا
ت إ
أM`C
]دي إC فW`
واxz^ ا$X
. 5
K$
اtG وSM
^{Q6 Z ذاآةSG
اUن ه#C
: 8 ا
ا-bا, ة5F
ا$C
Left Right
25
20 35
15 22 30 40
21 24
45
إU5C وآ اp,6
اJ د اآK
ن ا#M J$
إ
اU5C ا$^ أن آp,6
ا#F
اJ Å[4و
. ً
زUCً وMXAC C ادX=ن ا#C اW# وه,6
ة اK
ا=ب أو اJ {Tد اK
ر آن ا6
ا
.U
ة ا5F
اO ر#QC
ادX=ر أن ا#و
M-
اVWب هX J أنÅ[4و
.NULL M T <] امDQb
5Q $KQ6 Z اآةW
ء اO ^ اغX يQ`C
54
#UM`آ )دQ ذاآةUC O-KC
OQ
ا
^{ت اO ا
^{تLKT
أp-Q
ارز اr
.(
OU
ة ا5F
ء اU, ارزr
ة5F
ر اK
ة قX Ub G ً,b و,رهX M ^X $QKM U
ة ا5F
ء اU, أن
<] ذاتU
ة ا5F
ض اQ Ub K$c
Q
ارزت اD
اO]<ات و$
^ اX د$QX
,
^C $G ^X $QKC U
ة ا5F
اO ةX x^ إ$X و. (Father Link) ءU,=, ء,zا
ر6
إ
اY5Q #K
واJ$
إ
اU5Cر اW5
اJ اآ$
اtن آ , ةK
ا
C
, ¢D^QC ارزD
اVW هT4rو
ر( زW5
)ا#
اO ة ا=ولK
س أ اb^ أX ا=ولAUK
اSx
. رW5
اJ$M ^X YKUb رW5
اJ اآY
rاد إد$
اAUK
إذا آن اOC=د اK
وا
. رW5
ر ا6M ^X
وإ
ن#Qb (25,20,7,13,33,50,45,17,30,55 ) 8
اVW هU^rن أد .
ذJM O
Q
ا#F
وا
#F
ا اW, ة5F
ا
25
20 33
7 30 50
13 45 55
17
و25 ر6M
إU^Q ا8/ 25 J {T = ا20 دK
, ر6
إ
اU^Q ا8/ (25) ر5
, U,
ادX= اM
ا إW# وه25 J ر6
إ
ا13 دK
, U^Q ا8/ 20 J {T = أ7 دK
, 20
pb S$c W UM يW
ا
| اO^M $و
#include<iostream.h>
#include<conio.h>
struct tree{int d;tree*left,*right;};
void insert(tree*,tree*); !"
print(tree*); # $ %$ &'(
void main(){clrscr(); s )* + , # -
int h; NULL=
tree*node,*s,*p,*root=NULL; 0 0 1 p /(
for(int i=1;i<9;i++){node=new tree; . 2"
cin>>node->d;node->left=node->right=NULL; 4
5#
if(root==NULL)root=node;
%$ &'( 6
else # 7 $
insert(root,node);} + 9( p 8
print(root); + # -
getch();} . &$1
55
void insert (tree*root,tree*node){tree*p,*s;
s=root;
while(s!=NULL){p=s;if(node->d>s->d)s=s->right;else s=s->left;}
if(node->d>p->d)p->right=node;else p->left=node;}
print(tree*node){ OCاW
ء اXQb
, ن#C U هX-
^ ا$X
if(node!=NULL){ هZ J b اO
print(node->left);
print(node->right);
cout<<node->d<<" ";
}}
: U/ ة5< rا, JK AUX JX `
ارز اr
O
Q
اt`
ارز اr LQ# أنL5M UK ة5< rا, دةc UK $G t إذا آ$ K$
: ة5F
اX X ارزr
ة5F
اO K
د اX
ً اU$
اX
ة ا5F
اO K
د اX وي6M ة5F
ا85[ إن
^$K
اVW, مb يW
د ا#
ا اWر وهW5
ة اX
ى ً إ6
اX
ا
#include<iostream.h>
#include<conio.h>
struct tree{int d;tree*left,*right;};
void insert(tree*,tree*);
print(tree*);int x=0;
void main(){clrscr();
int h;
tree*node,*s,*p,*root=NULL;
for(int i=1;i<9;i++){node=new tree;
cin>>node->d;node->left=node->right=NULL;
if(root==NULL)root=node;
else
insert(root,node);}
print(root);cout<<endl<<"TOTAL NODE ="<<x;
getch();}
56
print(node->left);
print(node->right);
cout<<node->d<<" ";
x++;
}}
r$
د اK
اب واخ اX ^X $KM د#
ا اW ه8#
وا
#include<iostream.h>
#include<conio.h>
struct tree{int d;tree*left,*right;};
void insert(tree*,tree*);
print(tree*,int);
sc(tree*,int);
void main(){clrscr();
int h,a[15]={49,83,28,18,40,11,19,32,44,71,97,69,72,92,99};
tree*node,*s,*p,*root=NULL;
for(int i=0;i<15;i++){node=new tree;
node->d=a[i];node->left=node->right=NULL;
if(root==NULL)root=node;
else
insert(root,node);}cin>>i;
print(root,i);
getch();}
void insert (tree*root,tree*node){tree*p,*s;
s=root;
while(s!=NULL){p=s;if(node->d>s->d)s=s->right;else s=s->left;}
if(node->d>p->d)p->right=node;else p->left=node;}
57
node #8 "
ه/#ط اh
node وآن5 ويY 1
. 5S6#| اY$ د64#وي اY
وركPM p }#ا ا.ه
5\ أن5; >ة إيS ار6 …
2 5
\K رY#_ ا# أو إ#_ ا#إ
ا.N;K 5\ @= |K \4 (نg
ب ل0 ه اp ?ن5M#ا 3 4 6 7
.. ة64"#
ل
# و# د#
اSQb \ آK Qb ذا$ U$
ا5
اO OQ
اK
اX U ادM
b= اO د#
اSQC و$ة دا4T ^X O^Tو
#include<iostream.h>
#include<conio.h>
struct tree{int d;tree*left,*right;};
void insert(tree*,tree*);
print(tree*);
sc(tree*,int);int k=0;
void main(){clrscr();
int h,a[15]={49,83,28,18,40,11,19,32,44,71,97,69,72,92,99};
tree*node,*s,*p,*root=NULL;
for(int i=0;i<15;i++){node=new tree;
node->d=a[i];node->left=node->right=NULL;
if(root==NULL)root=node;
else
insert(root,node);}
print(root);
getch();}
print(tree*node){static tree*p=node;
if(node!=NULL){
print(node->left);
if(node->d>=p->d)cout<<node->d<<" ";
print(node->right);
58
}}
O {Q$
ا$G Å [ هUK وstatic ^$c U x أ8^
اMc إي, cM
بQ#$
د ا#
ا اWه
^ ا
ديX Ï^ اTا وWاآة هW
اO Õ ` {Q$
ا$G OQ 6 Y
ا
اKC UX اآةW
ا
.8^bو
K
اJ, KG Xة وX JX `, ^X $KM د#
ا اWوه
#include<iostream.h>
#include<conio.h>
struct tree{int d;tree*left,*right;};
void insert(tree*,tree*);
print(tree*);
sc(tree*,int);
void main(){clrscr();
int h;
tree*node,*s,*p,*root=NULL;
for(int i=1;i<9;i++){node=new tree;
cin>>node->d;node->left=node->right=NULL;
if(root==NULL)root=node;
else
insert(root,node);}
print(root);
cin>>h;
sc(root,h);
getch();}
print(tree*node){
if(node!=NULL){
print(node->left);
cout<<node->d<<" ";
print(node->right);
}}
sc(tree*node,int h){int j=0,t=0;
while(node!=NULL){j++;
if(node->d==h){cout<<"yes "<<j ;t=1;}
if(node->d<h)node=node->right;else node=node->left;}
if(t==0)cout<<endl<<"no";
}
: U
ة ا5F
د أوراق اX ب6[ ارزr
59
ً او,
, ة5F
د أوراق اX ب6`
و, ً,b U^G $ء آU,
أOQ
ة اK
اOة ه5F
اO Gإن ا
ر
طF
ا اW,
أم
وذG ورOة هK
أن اJ p`Q
اJ
if(node->left==NULL&&node->right==NULL)
#F
ا اW, G ا
ر#< ن#
^$K
اVW
د#
ا اWوه
#include<iostream.h>
#include<conio.h>
struct tree{int d;tree*left,*right;};
void insert(tree*,tree*);
print(tree*);
sc(tree*,int);int k=0;
void main(){clrscr();
int h;
tree*node,*s,*p,*root=NULL;
for(int i=1;i<9;i++){node=new tree;
cin>>node->d;node->left=node->right=NULL;
if(root==NULL)root=node;
else
insert(root,node);}
print(root);cout<<endl<<"TOTAL NODE = "<<k;
getch();}
print(tree*node){
if(node->left==NULL&&node->right==NULL)k++;
if(node!=NULL){
print(node->left);
cout<<node->d<<" ";
print(node->right);
}}
r$
د اK
ء ا, أS$c S-M د#
ا اWوه
#include<iostream.h>
#include<conio.h>
struct tree{int d;tree*left,*right;};
60
void insert(tree*,tree*);
print(tree*);
int s(tree*,int);
void main(){clrscr();int t[10]={50,69,100,4,3,9,74,15,68,33};
int h;
tree*node,*k,*b,*root=NULL;
for(int i=0;i<10;i++){node=new tree;
node->d=t[i];node->left=node->right=NULL;
if(root==NULL)root=node;
else
insert(root,node);}
cin>>h;b=root;k=NULL;
while(b){if(h<b->d)b=b->left;else
if(h>b->d)b=b->right;else break;k=b;}
b=root;
while(k){if(k==b)break;
cout<<b->d<<" ";if(k->d<b->d)b=b->left;else b=b->right;}
cout<<endl;print(root);
getch();}
print(tree*node){
if(node!=NULL){
print(node->left);
print(node->right);
cout<<node->d<<" ";
}}
61
: K
ف اW[ ارزr
F cC
وb = ءU,^ أX يQ`M
G ورYW[ اد$
د اK
إذا آن ا
QU 8/ {Q O UKG نD ل$F
أو إ
اJ$
إ
اUQ
اGد وK
اJX ` .1
. O
`
اSG$
ن أب ا#M ^\ إيD^
[ار وا$, v ورOF$M ن#b {Q$
ا اWوه
طF
ا اW,
أمG ورtذا آ ةK
ع اJX 6 Q6 UQ
اY^$X ءU/ إ.2
. if(node->left==NULL&&node->right==NULL)
^X ن آنI YU$M ^X ر ا=ب أم6M ^X ه هJUQ أنU^X O, دK
^ اX رK
اK, .3
#F
اJة وK
ف اW` 8/ ة5F
اJ ةK
اU
X ن#U left=NULL [ K5 Vر6M
.
ذwxb OC=ا
#F
ا اW, ة5F
اwAQ6 17 $
ة ذات اK
ف اW[ M
70 دK
اX ة5< ^X يQ`M YW[ اد$
د اK
إذا آن ا
62
.if(60>70) YU$M ^X ر ا=ب أم6M ^X د ه هK
اSG `د.1
ذا if(node->right!=NULL) X ة5<اد وXُ أx YU$M ^X cM دK
ه ا.2
, رU^X O, 70 U
X
`
اVW هO ن#U J,
اJ$, ا=بJ$M , UI طF
اp`C
دK
, ^AQ t آOQ
اK
, ره6M , و77 ةK
اO $G {T= A وهJ,
اء اcأ
. #F
ا اW, ة5F
اAQ YW[ اد$
ا
. I
* 3
( ; !
+ B =* # "# %= 1 8
. ! %B '
+ A$ 1
O'* > # + >$ ; !
+ ! B* O'* ?! = 1
>( 4 =( $* ! >( 40 >D )B
63
. ةK
ف اW` 8/ , J,
اJ$, ر ا=ب6M ,
وإ
. ةK
ف اW`ر و6^
[ار وا$, رW5
اU U رW5^
J$M عC cM 8
وإن
وOU Mد ه#
ا8#
ن وا# إيJ فW`M أنS-Q6M < |, 5 دJ#$M ات-D
آ اVWوه
. Sc أيO cM
#include<iostream.h>
#include<conio.h>
struct tree{int d;tree*left,*right;};
void insert(tree*,tree*);
print(tree*);
del(tree*&,int);
void main(){clrscr();
int k,h,a[]={50,60,70,55,56,65,64,66,75,77,80,40,45,35,46,36,30};
tree*node,*s,*p,*root=NULL;
for(int i=0;i<=6;i++){node=new tree;
node->d=a[i];node->left=node->right=NULL;
if(root==NULL)root=node;else insert(root,node);}
print(root);cout<<endl<<"ENTER VAL DELETET\n";
for( i=0;i<=7;i++){cin>>k;
del(root,k);
print(root);cout<<endl;}
getch();}
64
print(tree*node){
if(node!=NULL){
print(node->left);
print(node->right);
cout<<node->d<<" ";}
}
del(tree*&node,int h){int r=h,b,j=0;tree *t,*tt,*p,*pp;
if(node->d==h){if(node->right!=NULL)t=node->right;else t=node;
while(t!=NULL){if(t->left==NULL)break;t=t->left;}b=1;r=h=t->d;}
t=node;
while(t!=NULL){
if(t->d==h){j=1;break;}tt=t;if(t->d>h)t=t->left;else if(t->d<h)t=t->right;}
if(j==1&&t->left==NULL&&t->right==NULL){j=3;if(t->d>tt->d)tt-
>right=NULL;else tt->left=NULL;}
if(j==1){
if(t->d>tt->d){
if(t->right!=NULL){tt->right=t->right;
p=t->right;while(p!=NULL){pp=p;p=p->left;}
pp->left=t->left;}else tt->right=t->left;}
else
{if(t->left!=NULL){tt->left=t->left;
p=t->left;while(p!=NULL){pp=p;p=p->right;}
pp->right=t->right;}else tt->left=t->right;}
}
if(b==1)node->d=r;
if(j==0)cout<<"\nNOT FOUND "<<h<<endl;else delete t;
}.
65
^X L5M^ وX ربQM ^ ا
رئX وJMر$Q
اVWد ه6, U^X O, ر5<= اJX UM[ OQUM Uإ
ه
A
اJMر$C
؟OCاW
ء اXQb
ام اDQbون ا, ة5F
اX-, مM U
ر ا5<= ا-bا, |, LQ*( اآ
8 وآU اد اآX أ8 وآr$
د اK
اt`C ع$5 S-M U
ر ا5<= ا-bا, |, LQ*( اآ
؟U {Tاد اXأ
؟O
زUC ي وةXAC C ة5F
اX-, مM U
ر ا5<= ا-bا, |, LQ*( اآ
J, ا8M
JMW
ا8ن وآU/ء اU, أ8M
JMW
ء ا,eد اX 8 آS-M U
ر ا5<= ا-bا, |, LQ*( اآ
ء ؟U, أ8
JMW
ا8وا[ وآ
(10,3,43,62, 5,1,40)
Q
ا
ت اM
J#
(*
10
3
43
1
5 40 62
OC= ا#F
, ة5< ة أو إي5F
اVW هYX U ^ب-$
ا
62
43
40
10
5
3
1
ن,ر و,-^
C ا
تrC ط أنF, ر,
إU/ ة5< M`Q, مM |, LQ*( اآ
؟LCC ارزr ام إيDQbا
ة5F
رة وا#Q ر,-
اO ُ أن ا
ت$^X U/ ة5<
ر إ, M`Q, مM |, LQ*( اآ
رة ؟#Q$
ا8
اC
U
ا
SAMI , AMMAR , AHMED , BASSAM , SANAD , )
Q
ت ا$^#
اM
(*
يW
ل ا$
اU/ ة5< JM#C ^ب-$
( اMOSTAFA , READ , ALI , KAMAL ,AMIN)
ُ ؟,b ^X U$^#C
؟U
ة ا5F
اJ
اد ا=وX=ف اW`, مM |, LQ*( اآ
66
درA$
ا
. OK,
ا6X $` ر$X / C++ {^, 5
ل اTأ
. OU6`
اJ6`
اX . د/ ل#b, {^, ت-K$
إ
هآ اr
. وA Kb $X دK6 / ل#b, {^, 5
هآ ا
ت وا
. اب, X / \
IC , ن6\ آQb / O6
إ
{ ا
www.pitt.edu/~stephenp/INFSC0015
http://www.csd.abdn.ac.uk/~bjin/CS2005Tutorial
67
ها ا
ب آ
ا
ا
www.cb4a.com
Computer Books for Arab
/ر12 ا345 ، ت8
و:@ ا
?> = <;ت ا
وا123
68