Académique Documents
Professionnel Documents
Culture Documents
$/-'$0&
2. 12.%232,'-0&4- ,- .$/-'$0& )$
5*,/-(2,'-",& .$/-'$6,&
)'%*+'*%&
- ,&3& & "&)'&-
left right
индек
a
си
Вредно
сти
!"#$% 2.1 &'%(#)$% '*+'*,*-.%/#0% -% +12%.1)-%.% !.'3$.3'% -#,%
(елемен
@&<62*$($ *$ *23$($ (1"&8&( *$ *0832*2(0 0<050*(2 .(& +&'"6$(ти)
#"0'*&+(2) +0
3$'$#$ -&=$ +0 7&"52"$ *23$($. A0-&8$ #"0'*&+( &' *23$($ 5&60 '2"0-(*& '$ +0
%"2+($%2 +& -&"2+(090 *$ *0832*2&( 2*'0-+ #& O(1) #"050.
B,*-:22(0 (&%0"$:22(0) -&2 5&60 '$ +0 %"250*$( -&=$ +0 "$1&(2 +& *23$ +0:
- -"02"$90 %"$3*$ *23$,
- %"01$",#$90 #"0'*&+( +%&"0' 2*'0-+,
- %"01$",#$90 2*'0-+ +%&"0' #"0'*&+(,
- '&'$#$90 *&# %$" (2*'0-+, #"0'*&+() 2
- 1"2.090 %$" (2*'0-+, #"0'*&+().
;$-&  &%0"$:22 '0<,#$$( ("2#28$<*&, 5&60 '$ 12'$( -&5%<0-+*2, &+&10*& $-&
+$-$50 '$ 8$ 3$'"6250 %&+<0'&#$(0<*&+($ *$ 2*'0-+2(0 2 '$ =2 3$%$3250 ="$*2)*2(0
+<,)$2 (*0'&3#&<,#$90 *$ %"&50*$ 2<2 1"2.090 *$ %$" &' %"$3*$ *23$ 2 '&'$#$90 *$
*&# %$" #& *23$ +& %&%o<*0( 5$-+25$<0* 1"&8 *$ %$").
1
!"#$%&'()#$* '+#,%*-$. 0 0'*$ &' &+*&#*2(0 &%0"$:22 -&=$ +0 "$1&(2 +& *232.
!&("01*& 0 '$ +0 *$%"$#2 50+(& 3$ *&( 0<050*(, *$ 12<& -&8$ %&32:28$ *$ *23$($.
!"&1<05: 3$ '$'0*$ *23$ a[left…right], '$ +0 #50(*0 #"0'*&+( val #& a[ins], (-$'0
leftCinsCright). D-& 0 %&("01*&, '$ +0 %&50+($( #"0'*&+(2(0 *$'0+*&, 3$ '$ +0 *$%"$#2
50+(& 3$ *&( 0<050*(.
4"&1'#.%5 ,% 65*.-36%7* 6'*2-1!. 61 -#,%:
/+.0#)# '+#,%*-$. &' *23$. !&("01*& 0 '$ +0 23#".2 '#26090 *$ 0<050*(2(0 #&
*23$($ *$<0#& (&+#0* -&=$ +0 1"2.0 %&+<0'*$($ #"0'*&+() 3$ '$ +0 %"0=",%2"$ 2 +&
(&$ '$ 8$ *$5$<2 +#&8$($ =&<052*$.
!"&1<05: 3$ '$'0*$ *23$ a[left…right], '$ +0 231"2.0 #"0'*&+( val #& a[del], -$'0 left!
del! right). D-& 0 %&("01*&, '$ +0 %&50+($( #"0'*&+(2(0 *$<0#&, 3$ '$ +0 %&%&<*2
%"$3*2*$($.
N-2#5*-,#1-%"-# -#,#
2
2.2 !)$.'- /$%)-0- (SPARSE MATRICES)
%) 8)
!"#$($ 5$("2:$ 25$ 5 "0'2:2 2 3 -&<&*2, %$ +&=<$+*& (&$, ($$ 25$ '250*322 5x3. >&
&%.( +<,)$8 5$("2:$($ 25$ m "0'2:2 2 n -&<&*2, %$ #0<250 '0-$ 25$ '250*328$
m x n. H$-#$($ 5$("2:$ 25$ m·n 0<050*(2. @&-&<-, m = n, 5$("2:$($ +0 #2-$
-#$'"$(*$.
@&-&<-, +0 %"&,)2 #(&"$($ 5$("2:$ &' +<2-$($ 2.2, +0 ,#2',#$ '0-$ ($$ 25$ =&<05
1"&8 *,<(2 #"0'*&+(2 (&' 36 0<050*(2 +$5& 8 +0 *0*,<(2). >$-#2(0 5$("2:2 +0
*$"0-,#$$( %"$3*2 5$("2:2 ($*=. sparse matrices). !&+(&8$( =&<05 1"&8 ($-#2 5$("2:2
-&2 '&-&<-, +0 ),#$$( *$ -&*#0*:2&*$<*2&( *$)2* ("&.$( =&<05 505&"2+-2 %"&+(&".
!"&1<05&( +($*,#$ ,.(0 %&'"$+(2)0* '&-&<-, +($*,#$ 31&" 3$ 5$("2:$ +& '250*328$
1000 x 1000 -&8$ 25$ +$5& *0-&<-, *0*,<(2 #"0'*&+(2. J'0* *$)2* 3$ *2#*$
"0%"030*($:28$ 0 -&"2+(090 *$ *23$ &' %&'"0'0*$($ ("&8-$ (i,j,value), -$'0
#"0'*&+(2(0 i 2 j +&&'#0(+(#,#$$( *$ 2*'0-+2(0 *$ &"2=2*$<*$($ 5$("2:$, '&'0-$
#"0'*&+($ value -&"0+%&*'2"$ +& #"0'*&+($ *$ 0<050*(&( *$ &"2=2*$<*$($ 5$("2:$($
-&8 25$ 2*'0-+2 i 2 j.
!"2 (&$, %"#$($ ("&8-$ &' ($-$ '072*2"$*$($ *23$ 5&60 '$ =2 &%2.0 '250*322(0 *$
&"2=2*$<*$($ 5$("2:$ 2 1"&8&( *$ *0*,<(2 0<050*(2 #& *0$. 4$ (&8 *$)2*, *$50+(& '$
-&"2+(250 36 505&"2+-2 <&-$:22 -&"2+(250 +$5& 27 505&"2+-2 <&-$:22 (8K3 3$
*0*,<(2(0 0<050*(2 *$ 5$("2:$($ 2 1K3 3$ &%2+&( *$ '250*322(0 2 1"&8&( *$ *0*,<(2
0<050*(2 #& 5$("2:$($).
L$10<0.-$: &#&8 %"2+($% ("01$ '$ +0 -&"2+(2 #*25$(0<*&. L$ "$3<2-$ &' %"&="$5+-2(0
("$*+7&"5$:22 *$ 5$("2:2(0 "0%"030*(2"$*2 *$ -<$+2)0* *$)2*, $<=&"2(52(0 -&2
3
"$1&($( +& "0%"030*($:28$($ *$ %"$3*2(0 5$("2:2 5&60 '$ 12'$( 5*&=,
%&-&5%<0-+*2.
H$-&# %"250" 3$ #(&"$($ 5$("2:$ &' +<2-$ 2.2 0 '$'0* *$ +<2-$($ 2.3. >& &#&8 +<,)$8
+0 -&"2+($( 9K4 = 36 <&-$:22, .(& 0 2+( 1"&8 *$ <&-$:22 -$-& *$ &"2=2*$<*$($
5$("2:$. ;+(& ($-$, 12(*& 0 '$ +0 *$%&50*0 '0-$ +& 5$(05$(2)-2 ("$*+7&"5$:22 &'
%"$3*2 5$("2:2 5&6$( '$ +0 '&128$( *0%"$3*2 5$("2:2.
1, 2, 3
----------------
A(0, 6, 6, 8)
(1, 1, 1, 15)
(2, 1, 4, 22)
(3, 1, 6, -15)
(4, 2, 2, 11)
(5, 2, 3, 3)
(6, 3, 4, -6)
(7, 5, 1, 91)
(8, 6, 3, 28)
4
L$ '$ +0 %"2+($%2 '& 0<050*(2(0 (8$3<2(0, (0529$($) *$ <2+($($ #& -&"0-(0* "0'&+<0',
#& +0-&8 &' 0<050*(2(0 ("01$ '$ +0 +&),#$ $'"0+$($ *$ +<0'*2&( 0<050*( #& ($$ <2+($.
I#$$ $'"0+$ (%&-$6,#$)) )0+(& +0 *$"0-,#$ #"+-$ 2<2 <2*- (link).
A0-&8 0<050*( 0 &%2.$* +& #"0'*&+( *$ 8$30<&( -&8.(& 0 +&'"6$* #& %&<0(& 3$
3$%2.,#$90 *$ #"0'*&+($ (data) 2 %&-$6,#$) -&* +<0'*2&( 8$30< (link)
䅃азелlink
data
@&<62*$ *$ <2+($($ 0 1"&8&( *$ 8$3<2(0. !"$3*$($ <2+($ *0 +&'"62 *2(, 0'0* 8$3&<.
- '$ +0 50*,#$$( #"+-2(0, $ +& (&$ '$ +0 50*,#$ +(",-(,"$($ *$ <2+($($. I#$ *0
0 5&6*& -$8 *232(0.
A&=<$+*& *$ %"0'K&'*& -$6$*&(&, '2*$52)-2 %&#"3$*$ <2+($ 5&60 '$ +0 +7$(2 -$-&
5*&60+(#& *$ %&'"0'0*2 0<050*(2, %"2 .(& +0-&8 &' 0<050*(2(0 0 &%2.$* +&
#"0'*&+( *$ 8$30<&( (2<2 2*7& %&<0) 2 %&-$6,#$) -&* +<0'*2&( 8$30<. A0-&8 0<050*(
25$ +#&8 %"0(K&'*2- (&+#0* %"#2&( 0<050*() 2 +#&8 +<0'10*2- (&+#0* %&+<0'*2&(
0<050*(). !&+<0'*2&( 0<050*( &' <2+($($ #& '0<&( 3$ %&-$6,#$), 5&60 '$ 25$ *,<($
#"0'*&+( (NULL) 3$ <2*-&( (%&-$6,#$)&().
5
(%) (8)
(6)
(&)
!"#$% 2.4 :'#$%, -% *2-1!.'%-1 +16',%-# "#!.#
6
8$30<&( )20 2*7& %&<0 0 “B;4D” +& #"0'*&+($ *$ $'"0+$($ *$ *&#&#*0+0*2&(
8$30<)
(%) (8)
!"#$% 2.5 <5*.-36%7* -% *"*5*-. -% +'1#,61"-1 5*!.1 61 +12'*2*-%.% "#!.%
1. +0 *$8'0 0<050*(&( -&8 %"0(K&'2 *$ 0<050*(&( -&8 +$-$50 '$ =& 231"2.050
(*0-$ 3$ %&("012(0 *$ *$.2&( %"250" 0<050*(&( .(& +$-$50 '$ =& 231"2.050
0 0<050*(&( )20 2*7& %&<0 25$ #"0'*&+( “4;4D”),
2. %&-$6,#$)&( *$ %"0(K&'*2-&( ("01$ 0'*&+($#*& '$ +0 %&50+(2 '$ %&-$6,#$ *$
0<050*(&( *$ -&8 %&-$6,#$ 0<050*(&( .(& ("01$ '$ +0 231"2.0. >& &#&8
5&50*(, 0<050*(&( .(& +0 1"2.0 +0 ,.(0 3$7$/$ '0< &' &%0"$(2#*$($
505&"28$, *& (&8 #0/0 *0 0 '0< &' <2+($($.
7
!"#$% 2.6 ='#9*7* -% *"*5*-. -% +'1#,61"-1 5*!.1 61 +12'*2*-%.% "#!.%
procedure DELETES(T, Y)
//go brise jazelot na na listata so pocetok T i go postavuva Y da bide
podatocnoto (DATA) pole na ovoj jazel//
begin
if T = NULL then call EMPTY
X T
Y DATA(X) //Y zema nov podatok//
T LINK(X) //se brise jazelot od vrvot na magacinot i//
end DELETES
procedure ADDQ(F,R,Y)
//go dodava Y na krajot R od redot koj ima poceten pokazuvac F//
DATA(X) Y:
LINK(X) 0
if F = 0 then [F R X] //listata bila prazna
else [LlNK(R) X;R X] // listata ne bila prazna
end ADDQ
procedure DELETEQ(T,Y)
go brise jazelot na pocetokot na listata so pocetok T i go postavuva Y da
bide podatocnoto (DATA) pole na ovoj jazel
if T = NULL then call EMPTY
else [X T; T LINK(X) //go postavuva X na pocetniot jazel//
Y DATA(X); //go otstranuva podatokot//
end DELETEQ
8
2.3 !)4%(%$2*2$84 '$ 1"3-'"/- (" 4#'"(%)$'" 1"2).$'-
3-(%-
G&60 '$ +0 ,+#&2 +<0'*$($ *&($:28$. A0-&8 *0*,<(2 -&072:20*( 3$0'*& +&
+&&'#0(*2&( 0-+%&*0*( '$ 12'$( %"0(+($#0*2 #& '#0 2*7& %&<29$ *$ 0'*&+("$*&
%&#"3$*$ <2+($ &'*&+*& -$-& .(& 0 (&$ %"2-$6$*& *$ +<2-$ 2.7:
40-$ %&)0(&:2(0 *$ (20 '#$ %&<2*&5$ +0 %"0(+($#0*2 +& %&-$6,#$)2(0 D 2 >. (I#20
%&-$6,#$)2 %&-$6,#$$( *$ 0<050*(2(0 +& *$8=&<05 0-+%&*0*( #& '#$($ %&<2*&5$,
)28$ %&'"0'0*&+( 0 +%&"0' &%$?$)-2&( "0'&+<0' *$ %&+(&0)-2(0 0-+%&*0*(2.) G&60
'$ +0 2+-&"2+($( '#$ '",=2 %&-$6,#$)2: p 2 q, -&2 /0 *2 +<,6$( 3$ '#26090 *23
%&<2*&52(0. H&=$. 25$50 ("2 5&6*2 +<,)$2 (#2'2 +<2-$ 2.9) :
(i) %&-$6,#$)2(0 p 2 q %&-$6,#$$( *$ 8$3<2 +& 2+( 0-+%&*0*(. I#$ "03,<(2"$ +&
*&# 8$30< (#& *$.2&( +<,)$8 %"#) #& 312"*2&( %&<2*&5 -&8 25$ 2*7& %&<29$
0'*$-#2 *$ 0-+%&*0*(&( &'*&+*& 312"&( *$ -&072:20*(2(0. !& &1"$1&(-$($ *$
 8$3<2 %&-$6,#$)2(0 p 2 q +0 %&50+(,#$$( *23 <2+($($.
(ii) %&-$6,#$)&( p %&-$6,#$ *$ 8$30< -&8 25$ %&5$< 0-+%&*0*( &' 8$30<&( *$ -&8
%&-$6,#$ %&-$6,#$)&( q. H&=$., *$ -"$8&( &' "03,<($*(*$($ <2+($ +0 '&'$#$
8$30< -&8 25$ #"0'*&+(2 *$ 2*7& %&<29$($ 0'*$-#2 +& 2*7& %&<29$($ *$
8$30<&( &'"0'0* +& %&-$6,#$)&( q. !&(&$ 12'08/2 0 &1"$1&(0* +$5& 8$30<&( *$
-&8 %&-$6,#$ %&-$6,#$)&( q, +0 %&50+(,#$ +$5& q.
9
(iii) %&-$6,#$)&( p %&-$6,#$ *$ 8$30< -&8 25$ %&=&<05 0-+%&*0*( &' 8$30<&( *$
-&8 %&-$6,#$ %&-$6,#$)&( q. H&=$., *$ -"$8&( &' "03,<($*(*$($ <2+($ +0
'&'$#$ 8$30< -&8 25$ #"0'*&+(2 *$ 2*7& %&<29$($ 0'*$-#2 +& 2*7& %&<29$($
*$ 8$30<&( &'"0'0* +& %&-$6,#$)&( p. !&(&$ 12'08/2 0 &1"$1&(0* +$5& 8$30<&(
*$ -&8 %&-$6,#$ %&-$6,#$)&( p, +0 %&50+(,#$ +$5& p.
10
J'*$ %"0'*&+( *$ -",6*2(0 <2+(2 0 .(& (20 5&6$( '$ +0 231"2.$( #& 72-+*& #"050
103 "$3<2-$ *$ 1"&8&( *$ 8$3<2 -&2 (20 =& +&'"6$(.
>& &%.( +<,)$8 &+($*$(2(0 &%0"$:22 *$'  <2+(2 +0 +<2)*2 -$-& -$8 0'*&+("$*&
%&#"3$*2(0 <2+(2. I#20 <2+(2 2+(& ($-$ 25$$( 2+($ '072*2:28$ 3$ *2#*2&( 0<050*(
-$-& 2 &12)*2(0 <2+(2. >50(*,#$90 2 1"2.090 *$ 0<050*( &' -",6*$ <2+($ 0 +<2)*&
+& #*0+,#$90(& 2 1"2.090(& *$ 0<050*( -$8 0'*&+("$*& %&#"3$*2(0 <2+(2 2
%"0(+($#,#$ '&1$" %"250" 3$ +$5&+(&8*$ "$1&($. F$-& %"250", "0%"030*($:28$($ *$
%&<2*&5&( A = 4x12 + 3x9 + 1 0 '$'0*$ *$ +<2-$($ 2.11.
11
2.5 52";'" 1"2).$'- +)*:'- 3-(%-
@#&8*& %&#"3$*2(0 <2+(2 5&6$(, *& *0 5&"$ '$ 12'$( -",6*2. H20 2+(& ($-$ 5&6$(,
*& *0 5&"$$( '$ 25$$( 8$30< #&'$). !"250" 3$ '#&8*& %&#"3$*$ <2+($ -&8$ *0 0 -",6*$
2 *05$ 8$30< #&'$) 0 '$'0*$ *$ +<2-$ 2.12.$., '&'0-$ %"250" 3$ -",6*$ '#&8*&
%&#"3$*$ <2+($ 103 8$30< #&'$) 0 '$'0*$ *$ +<2-$ 2.12.1. A0%$- &' *$8=&<05 2*(0"0+ +0
-",6*2(0 '#&8*& %&#"3$*2 <2+(2 +& 8$30< #&'$). !"250" *$ ($-#$ -",6*$ '#&8*&
%&#"3$*$ <2+($ +& 8$30< #&'$) 2 ("2 0<050*($ 0 '$'0*$ *$ +<2-$ 2.12.#. !"$3*$ '#&8*&
%&#"3$*$ -",6*$ <2+($ +& 8$30< #&'$) 0 %"0(+($#0*$ *$ +<2-$ 2.12.= .
(%)
(8)
(6) (&)
!"#$% 2.12 :'*.!.%6% -% $'3?-% 2610-1 +16',%-% "#!.% !1 0%,*" 612%)
12
;*(0"0+*& 0 '$ +0 3$10<062 '0-$ 3$ '#&8*& %&#"3$*2(0 <2+(2 #& &%.( +<,)$8 #$62:
D<=&"2(5&( 3$ 1"2.090 *$ 8$30<&( &'"0'0* +& %&-$6,#$)&( P &' #$-#$ <2+($ +& 8$30<
#&'$) &'"0'0* +& %&-$6,#$)&( L 0 '$'0* +& +<0'*2&( -&' *$%2.$* #& %+0#'&8$32-:
procedure DDLETE(X, L)
if X = L then call NO__MORE__NODES
//L e lista so najmalku eden jazel//
RLINK(LLINK(X)) RLINK(X)
LLINK(RLINK(X)) LLINK(X)
end DDLETE
!"#$% 2.13 ='#9*7* -% *"*5*-. 12 $'3?-% 2610-1 +16',%-% "#!.% !1 0%,*" 612%)
!"2 (&$ 0 #$6*& '$ +0 *$%&50*0 '0-$ #0"&'&+(&8*&+($ *$ #"+-2(0 ('$<2 (20 *$#2+(2*$
%&-$6,#$$( *$ %"0'K&'*2&( &'*&+*& +<0'*2&( 0<050*( #& <2+($($) 5&"$ '$ +0
&10310'2 %"&="$5+-2.
13
2.6 ,$;&4(%- 6)47+-
I#$ 5&60 '$ +0 +<,)2 #& %&=&<05 1"&8 +<,)$2 -&2 5&6$( '$ 12'$( 0'*&+($#*2 3$
"$3"0.,#$90 (#& +<,)$8 -&=$ 0 *$ %"250" 3$1&"$#0*& *0-&8 %&-$6,#$) '$ +0
2*2:28$<232"$, $ +0 -&"2+(2 3$ &%0"$:22 #& %"&="$5$($), '& 5*&=, %&-&5%<2:2"$*2
(-$-& .(& 0 %"2+($%,#$90 '& 2*7& %&<0 *$ %&-$6,#$) -&8 %"0'K&'*& -$-& "03,<($( *$
*0-&8$ &%0"$:28$ +($*$< *,<0#).
>& %&*$($5&.*2&( (0-+( /0 12'$( &%2.$*2 )0+(2 ="0.-2 -&2 +0 8$#,#$$( %"2
"0$<23$:22(0 *$ $<=&"2(52 -&2 "$1&($( +& <2+(2.
14