You are on page 1of 68

1

2
3
‫ا
س‬
‫ا ‪5 ------------------------------------------------------------------‬‬

‫ إ
 هآ ا
ت‪6 ---------------------------------------------------‬‬

‫ا هآ ا
ت‪8 ------------------------------------------------------‬‬

‫أاع هآ ا
ت‪8 -------------------------------------------------------‬‬

‫ا
‪#$‬س )‪8 -------------------------------------------------------- (Stack‬‬

‫‪ ً /‬ا
‪-‬ا‪15 ------------------------------------------------ (Queues) ,‬‬

‫ا
‪456‬ت ‪20 ----------------------------------------------------------------‬‬

‫ا
ا‪35 --------------------------------------------------------- (List) 8‬‬

‫ا=<‪5‬ر ‪52 --------------------------------------------------------- Trees‬‬

‫ا
‪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 ,C D  ( 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
. JMŠDQ
‫ وا‬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
O6’U{$
‫“ ا‬MF
‫ Œ ا‬JMŠDQ
‫ط ا‬b‫^ أو‬X ‫ ا
ت‬LCC  ‫ آ‬OUKM ‫ وه‬/ OMŠ
‫ ا‬L‫آ‬Q
‫ا‬
‫ أي‬YK,QC ‫ <ة أو‬M-, O6’U{$
‫^ ا
ص ا‬X ‫Šن ا
ت‬DC t[ O6’U{$
‫وا
ص ا‬
.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‫ و‬8‘U‫ و‬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$
MX U, QKQ ‫اآة‬W
‫ ا‬O ًUK 4 ً #‫ وه‬4#< WDQC
.‫َ `دُا‬xZ ‫]دي‬Q
[‫ وا‬p6 O 8‘UC 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‫ وا‬JMŠDQ
‫ ا‬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 8‘UC 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,/ 
, ‫ ا
ت‬JMŠDQ
‫ص‬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‫ ا‬

TOP “ [‫^ ]< وا‬X …‫ي إ‬Q`M … ‫س‬#$


‫ أن ا‬5 ,6
‫ل ا‬#<z‫ ا‬J‫و‬

J MŠ U  $G ‫ل أول‬r‫ إد‬UX‫ و‬TOP=-1 ‫ن‬I ُZ‫س ر‬#$
‫ن ا‬#M UK
‫ار وا[ إ… أن‬$, MŠM <]$
‫ ن ا‬$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 JMŠDC‫س و‬#$
‫Œ ا‬$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

1) QX-, ‫م‬M 8/ ‫س‬#$


‫ ا‬r‫ دا‬8G ‫ل‬r‫^ إد‬X $KM Y
|, ‫ا أول‬W‫وه‬
#include<iostream.h> ‫م‬X {Q ‫س وه‬#$
‫ ا‬M‫ ذ‬$6M‫ و‬Top
#include<conio.h> YQ$G {C‫ل إ
 و‬T
‫ ا
وال ا‬S-Q6C
int size=10;
int a[10],top=-1; ‫س‬#$
‫ ا‬J ‫اج ا
ت‬r‫دا
 أ‬
int pop();
void push(int[],int);
WrIC O‫س وه‬#$
‫ ا‬J ‫ل ا
ت‬r‫دا
 إد‬
main(){int i,k;clrscr(); 5Q‫ ع أ‬J‫  و‬A ‫ ع‬J Q ‫را‬,
for(i=0;i<size;i++){cin>>k;push(a,k);}
for(i=0;i<size;i++)cout<<pop()<<" ";
getch();}

‫ن‬#M UX ¡^Q$ ‫س‬#$


‫ أن ا‬8^K
void push(int a[],int k){ 85[ = top ‫ أي‬MW
‫]< ا‬
if(top==sise-1)cout<<" FULL STACK"; 1-  A$
‫ا‬
else SUb‫ا[ و‬, <]$
‫ ا‬J MŠUb …‫وإ‬
SG$
‫ ا‬r‫ا‬,  A$
‫ ا‬r‫ا‬, $
‫ا‬
a[++top]=k;
top YQ$G ‫ن‬#C ‫ي‬W
‫ا‬
}
int pop(){ UX ًZ‫ ر‬wT‫س أ‬#$
‫ أن ا‬8^K
if(top<0)cout<<"EMPTE STACK"; G‫ أي ا‬1-= top <]$
‫ ا‬$G ‫ن‬#C
 A
‫ ا‬J
else
 A$
‫ ا‬r‫ دا‬J $
‫ج ا‬DUb …‫وإ‬
return a[top--]; ‫ح‬-Ub‫ و‬top $G ‫ان‬UX $`C OQ
‫ا‬
} . [‫ا‬, <]$
‫ ا‬$G
STACK TOP ,PUSH,POP
J –
‫{ات و‬Q ‫ء‬$b‫ أ‬JX ‫رة‬X ,KQ
‫ ا‬VW‫آ ه‬
. ‫ دوال‬t6
O ‫ء‬$b=‫ ا‬VW, Q
‫ا
وري ا‬

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 MŠM ‫س‬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 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

11
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;}

‫س‬#$
‫ت إ
 ا‬, 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‫ ا‬,S’C) -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$
‫ ا‬JMŠDQ
‫س‬#$
‫ ا‬YFM‫ و‬-D
‫ هآ ا
ت ا‬J ‫رة ع‬X O‫وه‬
FIFO (First Input First Output) ‫ ه‬c‫ا‬r‫^ت وإ‬K$
‫ل ا‬r‫د‬z SQ$
‫ ا‬8‘UQ
‫ أن ا‬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

TAIL [‫ار وا‬$, ‫ف‬W[ ^$X ‫ آ‬O MŠM ‫ وا


أس‬t,C MW
‫ن ا‬#M ‫ إي‬p,6
‫– ا‬#X ‫ف‬W`
‫^ ا‬$X‫و‬
. ‫ف إن أردت‬W[ ^$X ‫ آ‬O ‫ر‬6^
Y5Q$^
[‫ إزا‬$X S

xz, w$6M ‫ر‬,-


‫ أن ا‬#F
‫ ا‬JM
If(tail<size-1&&head==0)

…‫^¡ و‬Q‫ ا‬G ‫ر‬,-


‫ أن ا‬#F
‫ ا‬JM
xz, w$6M
If(tail==size-1&&head==0)

‫ر أن‬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$6M‫ت و‬, , ‫ر‬,-


‫ن ا‬v #F
‫ ا‬JM
‫اج‬rz‫ف وا‬W`
,
If(tail>0&&head<=tail)

‫ر‬,-
, |, ‫ا اول‬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++];}

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

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++];}

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;}

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
‫ ا‬SUb $
,
‫<ة‬
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();}

push(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;}}
pup(list*p)
{list *n=p;struct s{int a;s*next;};
s*k,*h,*f,*i,*j;k=new s;k->a=n->a;k->next=NULL;h=f=k;n=n->last;
while(n!=NULL){k=new s;k->a=n->a;k->next=NULL;h->next=k;h=k;n=n->last;}

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();}

push(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;}
pup(list*top,list*&top2,list*&top3)
{list*t,*r,*p=top;t=r=NULL;t=r=new list;
while(p!=NULL)
{if(p->a%2==0){if(t==NULL){t->a=p->a;t->last=NULL;top2=t;}
else
{t=new list;t->a=p->a;t->last=top2;top2=t;}}
else
{if(r==NULL){r->a=p->a;r->last=NULL;top3=r;}
else
{r=new list;r->a=p->a;r->last=top3;top3=r;}}
p=p->last;}}

‫ى‬r‫ أ‬c J c‫ وا


Šو‬c J M‫اد ا
د‬Xz‫ ا‬Sx‫^ و‬X $KQ ‫س‬# OXQ6C 
‫ دا‬-b‫ا‬, ‫ا آد‬W‫وه‬
#include<iostream.h>
#include<conio.h>

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();}

void c(list*&node){list *k,*m,*top2=NULL,*top3=NULL,*n;


while(node){
if(node->d%2==0){
if(top2==NULL){m=new list;m->d=node->d;m->last=NULL;top2=m;}else
{m=new list;m->d=node->d;m->last=top2;top2=m;}
}else
if(top3==NULL){n=new list;n->d=node->d;n->last=NULL;top3=n;}else
{n=new list;n->d=node->d;n->last=top3;top3=n;}
k=node;node=node->last;
delete k;}
while(top3){m=new list;m->d=top3->d;m->last=top2;top2=m;k=top3;
top3=top3->last;delete k;}
node=top2;
}
$G –#X ^X $KM ‫د‬#
‫ا ا‬W‫وه‬
#include<iostream.h>
#include<conio.h>
struct list{int d;list*next;};
void main(void){clrscr();
list *tail,*head,*node,*k,*p;
int i=0;
node=new list;cin>>node->d;node->next=NULL;tail=head=node;
while(i<3){
node=new list;
cin>>node->d;
node->next=NULL;
tail->next=node;i++;
tail=node;}
node=head;k=new list;k->d=head->d;k->next=NULL;p=k;node=node->next;
while(node!=NULL){
k=new list;k->d=node->d;
k->next=p;p=k;
node=node->next;}

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

‫ة أاع‬X ‫ف‬W`^


‫و‬
‫ ا
أس‬J ‫ف‬W`
‫• ا‬
MW
‫ ا‬J ‫ف‬W`
‫• ا‬
‫ن‬# ‫ أي‬J ‫ف‬W`
‫• ا‬
.‫ة‬X r‫ أي أ‬$^
MU
‫ ا‬J ‫ف‬W`
‫ وه ا‬8‫ ا
ا‬VW
‫ى أول Œل‬Ub‫و‬
‫ة‬K
‫ار وا[ أي ا‬$, ‫ إ
 وراء‬MW
‫ ا‬U 8C NULL M‫و‬6 $
‫ ا‬O ‫ة‬r=‫ ا‬G ‫ة‬K
‫ ا‬Kc ‰
‫ ذ‬8QM‫و‬
. ‫ة‬r=‫ة ا‬K
‫ف ا‬W` 8/ r=‫ ا‬G OQ
‫ا‬
#include<iostream.h>
#include<conio.h>
struct list{int d;list*next;};
void main(void){clrscr() ;
list *head,*node,*tile,*p;
int i=0;
node=new list;cin>>node->d;
tile=head=node;
while(i<5){
node=new list;
cin>>node->d;
node->next=NULL;
tile->next=node;
tile=node;i++;
}
p=node=head;
while(node){if(node->next==NULL){p->next=NULL;delete node;break{;
p=node;node=node->next;}

node=head;
while(node!=NULL){cout<<node->d<<" ";node=node->next;}

41
getch();
}

. ‫ة‬X ‫م أي أول‬z‫ ا‬J ‫ف‬W`


‫^ ا‬$K
‫د‬#
‫ا ا‬W‫ ه‬8#
‫وا‬
. ‫ة‬X ‫ف أول‬W` 8/ ‫ه‬K, OQ
‫ة ا‬K^
‫ار وا[ أي‬$, ‫م‬z‫ ا
أس إ
 ا‬UUb
#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;
tile=head=node;
while(i<5){
node=new list;
cin>>node->d;
node->next=NULL;
tile->next=node;
tile=node;i++;
}
node=head;
head=head->next;
delete node;
node=head;
while(node!=NULL){cout<<node->d<<" ";node=node->next;}
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
wQM 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 ‫Šي‬MŠXM ‫ة‬#

‰ ا‬wQC 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#‫ا ا‬.‫ة ه‬6 K‫
و‬#/#‫[ ا‬.‫ا
و?;^ وان "\  ه‬6;#‫ ا‬
.‫ة‬64#‫ف ا‬. a#‫ ذ‬64 ‫م و‬b# 6‫ار وا‬6
" ‫أس وه‬#‫ن ا‬

…‫وإ‬

‫ ً إي‬e‫
ا‬RS
# NTK 5.#‫ ا‬P‫ة ه‬64#‫ ا‬W‫ إذا آ‬Y$Y ‫ط‬M#‫ا ا‬.‫ ه‬PK
‫ط ه‬M#‫ا ا‬.‫ة ه‬6 K‫
و‬#/#‫[ ا‬.‫
و?;^ وان "\  ه‬N\#‫ف  ا‬./#‫ا‬
‫ة‬64#‫ف ا‬. a#‫ ذ‬64 ‫ و‬f"g"# 6‫ار وا‬6
" ‫ وه‬5.#‫ظ "_ ن ا‬$/#‫ا‬
.
…‫وإ‬

 \" ‫ ً و?;^ وان‬e‫


ا‬RS
# NTK 5.#‫أس وا‬#‫ة  ا‬64#‫?ن ا‬
‫ة‬64#‫ ا‬hi j‫
ور‬##‫ة ا‬64#‫ ا‬%
Y#‫ة ا‬64#‫ ا‬hi j‫@ ر‬K
#/#‫[ ا‬.‫ه‬
. a#‫ ; ذ‬5$?0‫ ا‬PK 5M#‫
وا‬Y#‫ة ا‬64#‫ ا‬%
##‫ا‬

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

struct list{int d,list*next,*last;};


node , tail , head ‫ ]<ات‬/4/ UM
‫و‬
X-
‫وآن أ ا‬
Cout<<node->d; =5
Cout<<node->next->next->d; =7
Cout<<node->next->last->d; =5
Cout<<node-> next-> next-> next-> next-> next-> next->d; =2
Cout<<head->d; =1
Cout<<head->next->d; =2
Cout<<head->last->last->d; =NULL
Cout<<tail->last->last->next->d; =8
Cout<<tail->next->last->d; =NULL

\

\ أ‬I ‫ز‬5…‫ا أ‬W‫^ ه‬X YU‫ وأه‬Y
‫رك‬,‫ أ‬OUI `^
‘UM  ‫ون‬, |
‫ا ا‬W‫ ه‬SQC ‫ف ا
رئ‬X ‫إذا‬
. ‫Šي‬MŠX 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
‫ا‬

‫ر‬5<=‫ ا‬O DQ6$


‫ت ا‬-Q
‫ ا‬J‫و‬
‫ن‬# (a+b)*2 Œ YxM
‫ا‬,KQ
‫ ا‬

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‫ و‬SM
^{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 YKUb ‫ر‬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$

JX \GQU ^X U^A[G U ^r$


‫ ا‬$
‫وي ا‬6C ‫ع‬W5
‫ ا‬O ^56$
‫ ا‬$
‫ ا‬t‫ إذا آ‬
. —`
‫ا‬
JQ
[ |QUb Y …‫ وإ‬
. \GQ ‫ت‬c‫ وان و‬J$
‫ ا
 ا‬L‫ه‬WU6 ‫ة‬K
‫ ا‬J ‫^ اآ‬r$
‫ ا‬$
‫ ا‬t‫ إذا آ‬
. \GQ ‫ت‬c‫ر وان و‬6
‫ ا
 ا‬L‫ه‬WU6 ‫ة‬K
‫ ا‬J {T‫^ ا‬r$
‫ ا‬$
‫ ا‬t‫ إذا آ‬

: ‫ة‬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();}

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){
if(node!=NULL){

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;}

print(tree*node,int x){tree*p;int t=0;


while(node!=NULL)
{if(node->d==x){t=1;break;}p=node;if(node->d>x)node=node->left;else
node=node->right;}
if(t==1){
cout<<p->d<<" FATHER";
if(p->left->d==x)cout<<endl<<p->right->d<<" BRATHER";else
cout<<endl<<p->left->d<<" BRATHER";}
else
cout<<"NOT FOUND NUMBER";
}
OC…‫ ا‬#F
‫‘ ا‬U^

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"#

. 7 ‫ ا…خ وه‬U


S-M‫ و‬5 ‫ ا…ب وه‬U
S-M ‫ف‬b  6 8G
‫ ا‬U^r‫^ اد‬

‫Œل‬
#‫ و‬# ‫د‬#
‫ ا‬SQb \‫ آ‬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();}

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){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();}

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){
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();}

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){
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();}

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){
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 “, …‫وإ‬

-6, ‫ إ… أ‬#, ‫ء‬OF


‫˜ ا‬K, O‫ر ه‬W5
‫ف ا‬W[ ‫ أن أراد‬O‫ [
 وه‬U^X O, 
OQ
‫وط ا‬F
‫ ا‬S$c p-‫ر و‬W5^
J$M=‫ع ا‬W5
‫ ا‬O ‫ة‬X {T‫ ا‬JX …‫ `— أو‬
. ً,b ‫ذآه‬
‫ا‬W,‫ و‬UX UŒ`, OQ
‫ة ا‬K
‫ف ا‬W` 8/ , ‫ر‬W5
‫ ا‬$G ‫وي‬6‫ة و‬K
‫ ا‬$G WrI‫ و‬
. |QUb #F
‫ا ا‬W‫ر وه‬W5
‫ ا‬UW[ ,Œ$, ‫ر إي‬W5
‫ ا‬$G U^^[‫ن أ‬#

. ‫ة‬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();}

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;}

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 UŒM[ 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

You might also like