]> mj.ucw.cz Git - ads1.git/commitdiff
Prvni nastrel.
authorMartin Mares <mj@ucw.cz>
Wed, 3 Oct 2007 11:16:09 +0000 (13:16 +0200)
committerMartin Mares <mj@ucw.cz>
Wed, 3 Oct 2007 11:16:09 +0000 (13:16 +0200)
7-stromy/7-stromy.tex [new file with mode: 0644]
7-stromy/Insert1.gif [new file with mode: 0644]
7-stromy/Makefile [new file with mode: 0644]
7-stromy/ab-strom11.gif [new file with mode: 0644]
7-stromy/b-klicu1.gif [new file with mode: 0644]
7-stromy/b-klicu2.gif [new file with mode: 0644]
7-stromy/delete21.gif [new file with mode: 0644]
7-stromy/delete22.gif [new file with mode: 0644]
7-stromy/delete31.gif [new file with mode: 0644]
7-stromy/delete32.gif [new file with mode: 0644]

diff --git a/7-stromy/7-stromy.tex b/7-stromy/7-stromy.tex
new file mode 100644 (file)
index 0000000..f171c4d
--- /dev/null
@@ -0,0 +1,274 @@
+\input ../lecnotes.tex
+
+\prednaska{7}{Stromy}{zapsali Miroslav Øezáè, \v Stìpán Masojídek, Barbora Urbancová}
+
+\h{Binární}
+
+V minulé kapitole jsme se zabývali problematikou pøidávání a ub\'\i{}r\'an\'\i{} prvk\accent23u bin\'arn\'\i{}ho stromu a jeho slo\v zitost\'\i{} a zjistili, \v ze v\v se z\'ale\v z\'\i{} na~hloubce stromu. V\'\i{}me, \v ze chceme hloubku logaritmickou, ale jak ji m\accent23u\v zeme udr\v zet p\v ri~operac\'\i{}ch? \v Re\v sen\'\i{}m jsou
+\
+
+
+\h {AVL stromy}
+
+tedy stromy, hloubka jejich\v z prav\'eho a lev\'eho podstromu se~li\v s\'\i{} maxim\'aln\v e o~jednotku
+\par
+
+\> {\I Operace s AVL stromy:}
+\
+
+
+\s {FIND}
+
+\> se~neli\v s\'\i{} od~operace find v~bin\'arn\'\i{}ch stromech.\
+\
+
+
+Dùraz klademe na operace \it INSERT \rm a \it DELETE \rm , proto\v ze p\v ri~nich mus\'\i{}me o\v setøit udr\v zení struktury AVL~stromù..
+
+
+
+Prvn\'\i{} nutnou podm\'\i{} podm\'\i{}nkou je, \v ze si mus\'\i{}me \bf pamatovat stav \rm v~ka\v zd\'em vrcholu tohoto stromu. A~to jednak hladinu alias \bf hloubku\rm , ve~kter\'e se vrchol vyskytuje, tedy vzd\'alenost tohoto vrcholu od~ko\v rene stromu, a~za~druh\'e \bf vyv\'a\v zen\'\i{} \rm hloubky jeho podstrom\accent23u.
+Umluv\'\i{}me~se nap\v r. na~pravidle, \v ze pokud je lev\'y podstrom hlub\v s\'\i{}, vrchol m\'a hodnotu minus $\ominus$ a pokud je prav\'y podstrom hlub\v s\'\i{}, vrchol m\'a hodnotu plus $\oplus$.
+
+\>T\'\i{}m dost\'av\'ame t\v ri typy vrchol\accent23u, kter\'e se mohou v~AVL~stromu vyskytnout:
+
+\item{$\bullet$}\it Vrchol se~znam\'enkem~$\oplus$ \rm
+
+\item{$\bullet$}\it Vrchol se~znam\'enkem~$\ominus$ \rm a
+
+\item{$\bullet$}\it Vrchol se~znam\'enkem~$\odot$ (nulou), \rm kter\'y m\'a oba syny schodn\'e hloubky.
+\
+
+
+\s {SESTAVEN\'I} \rm AVL stromu:
+
+Postupujeme po~struktu\v re bin\'arn\'\i{}ho stromu od~list\accent23u ke~ko\v reni a~kontrolujeme, zda jsou vrcholy v~jednom ze~t\v r\'\i{} uveden\'ych stav\accent23u. Pokud ne, oprav\'\i{}me ho operac\'\i{} jm\'enem rotace.
+\
+
+\s {Rotace}
+\vglue 2 in
+\centerline{Pros\'\i{}m vlo\v zit obr\'azek ``Rotace".}
+
+Jde o~p\v revr\'acen\'\i{} hrany mezi p\accent23uvodn\'\i{}m otcem (ko\v renem podstromu) a nevyv\'a\v zen\'ym vrcholem tak, aby byli i po pøeskupení synov\'e vzhledem k~otc\accent23um spr\'avn\v e uspo\v r\'ad\'ani.
+\
+
+\
+
+\s {INSERT} \rm - vlo\v zen\'\i{} vrcholu do~AVL~stromu.
+
+Vlo\v z\'\i{}me jej jako list. Nov\'y list m\'a v\v zdy "znam\'enko" nula $\odot$. Pøedpokládáme, \v ze patøí nalevo od posledního otce. Pod\'\i{}v\'ame~se na~znam\'enko jeho otce:
+\itemize\ibull
+\: \bf m\v el~$\odot$ (nem\v el syna) $\rightarrow$ teï m\'a~$\ominus$ \rm , po struktu\v re stromu nahoru pos\'\i{}l\'ame informaci, \v ze se podstrom prohloubil o~1, co\v z m\accent23u\v ze m\'\i{}t samoz\v rejm\v e vliv na~znam\'enka vrchol\accent23u na~cest\v e ke~ko\v reni.
+\: \bf m\v el~$\oplus$ (m\v el prav\'eho syna, kter\'y je listem) $\rightarrow$ teï m\'a~$\odot$ \rm , hloubka podstromu se~nem\v en\'\i{}
+\: \bf mìl $\ominus$ \rm $\leftarrow$ nenastane, proto\v ze v binární struktuøe nejmohou být dva leví synové
+\par P\v ripadne-li p\v ridan\'y list napravo, \v re\v s\'\i{}me zrcadlov\v e.
+\endlist
+\vglue 2 in
+
+
+\centerline{Pros\'\i{}m vlo\v zit obr\'azek ``P\v rid\'an\'\i{} listu samotn\'e''.}
+\
+
+
+\>\bf Prohloubil-li se strom \rm vlo\v zen\'\i{}m nov\'eho listu, mus\'\i{}me pracovat s vyvá\v zením:
+\algo
+\: informace o~prohlouben\'\i{} p\v ri\v sla zleva \bf do~vrcholu se~znam.~$\odot$ \rm $\rightarrow$ m\v en\'\i{} jej na~vrchol se~znam\'enkem~$\ominus$ a informace o~prohlouben\'\i{} je t\v reba poslat o~\'urove\v n v\'y\v s
+\: informace o~prohlouben\'\i{} p\v ri\v sla zleva \bf do~vrcholu se~znam.~$\oplus$ \rm $\rightarrow$ m\v en\'\i{} jej na~vrchol se~znam\'enkem~$\odot$, hloubka je vyrovn\'ana, d\'al nic nepos\'\i{}l\'ame
+\: informace o~prohlouben\'\i{} p\v ri\v sla zleva \bf do vrcholu s~$\ominus$ $\rightarrow$\rm
+\endalgo
+
+\> $\rightarrow$ rozebereme na~t\v ri p\v r\'\i{}pady podle znam\'enka vrcholu, ze~kter\'eho p\v ri\v sla informace o~prohlouben\'\i{}.
+\itemize\ibull
+\: informace p\v ri\v sla \bf z~vrcholu se~znam\'enkem~$\ominus$\rm $\rightarrow$ provedeme rotaci doprava tak, \v ze nov\'ym ko\v renem se~stane vrchol~$y$, ze~kter\'eho p\v ri\v sla informace o~prohlouben\'\i{}
+\vglue 2 in
+\centerline{Pros\'\i{}m vlo\v zit obr\'azek ``y je $\ominus$"}
+{\I Pozorování 1:} znam\'enko vrchol\accent23u~$y$ a~$x$ je~$\odot$\
+
+{\I Pozorování 2:} hloubka p\v red vkl\'ad\'an\'\i{}m byla $h+1$ a~nyn\'\i{} je tak\'e $h+1$, tedy nemus\'\i{}me d\'ale pos\'\i{}lat informaci o~prohlouben\'\i{} a m\accent23 u\v zeme skon\v cit
+\: informace p\v ri\v sla \bf z~vrcholu se~znam\'enkem~$\oplus$\rm
+\itemitem{-}uva\v zme je\v ste vrchol~$z$ jako prav\'eho syna vrcholu~$y$, ze~kter\'eho pri\v sla informace o~prohlouben\'\i{}, a~jeho podstromy~$B$ a~$C$
+\itemitem{-} vrcholy~$B$ a~$C$ maj\'\i{} hloubku~$h$ nebo $h-1$ $\rightarrow$ ozna\v cme~ji tedy $h-$ (to z\v rejm\v e proto\v ze vrchol~$y$ m\'a znam\'enko~$\oplus$, tedy jeho prav\'y podstrom s~ko\v renem~$z$ m\'a hloubku~$h+1$ )
+\itemitem{-}provedeme dvojrotaci tak, \v ze nov\'ym ko\v renem se~stane vrchol~$z$
+\vglue 2 in
+
+\centerline{Pros\'\i{}m vlo\v zit obr\'azek ``$y$ jako $\oplus$''}
+\
+
+
+{\I Pozorov\'an\'\i{} 1:} znam\'enko vrcholu~$z$ bude~$\odot$\
+
+{\I Pozorování 2:} znam\'enka vrcholu~$x$ a~$y$ se~dopo\v c\'\i{}taj\'\i{} v~z\'avislosti na~hloubce~$B$ a~$C$\
+
+{\I Pozorování 3:} rozd\'\i{}l hloubky prav\'eho a~lev\'eho podstromu u~t\v echto vrchol\accent23u bude~$0$ nebo~$1$\
+
+{\I Pozorování 4:} hloubka p\v red vkl\'ad\'an\'\i{}m byla $h+2$ a~nyn\'\i{} je tak\'e $h+2$, tedy nemus\'\i{}me d\'ale pos\'\i{}lat informaci o~prohlouben\'\i{} a~m\accent23u\v zeme skon\v cit
+\: informace p\v ri\v sla \bf z~vrcholu se~znam\'enkem~$\odot$ \rm $\leftarrow$ to nem\accent23u\v ze nastat, proto\v ze v~tom pøípadì by ne\v slo o~prohloubení
+\endlist
+\
+
+\
+
+\s {DELETE} \rm - odebrání vrcholu z~AVL~stromu
+\
+
+\
+
+\> Buï ma\v zeme list nebo ma\v zeme vrchol, který mìl nìjaké syny.
+
+\itemize\ibull
+\: pokud ma\v zeme list, podíváme~se na~znaménko otce.  Pøedpokládáme mazání levého syna.
+\itemize\ibull
+\: mìl znaménko $\ominus$ (nemìl pravého syna) $\rightarrow$ zmìní~se na~$\odot$ (vrchol teï nemá \v zádné syny)
+\: mìl znaménko $\odot$ (mìl oba syny) $\rightarrow$ zmìní~se na~$\oplus$
+\endlist
+(ma\v zeme-li pravý list, øe\v síme zrcadlovì)
+\: ma\v zeme vrchol s~jedním (levým nebo pravým) synem $\rightarrow$ syn nastupuje na~místo otce a~získává zn.~$\odot$\
+
+\> V~obou pøípadech posílame informaci o~zmìnì hloubky stromu..
+\: mazaný vrchol mìl oba syny (listy) $\rightarrow$ vybereme jednoho ze~synù na~místo smazaného otce. Hloubka se nemìní.
+\: mazaný vrchol mìl syny podstromy $\rightarrow$ na~jeho místo vezmeme nejvìt\v sí prvek levého podstromu (nebo nejmen\v sí prvek pravého podstromu) a od~odebraného (nahrazujícího) listu kontrolujeme vyvá\v zení podstromu.
+\endlist
+
+
+\
+
+
+\bf \' Uprava vyvá\v zení \rm stromu po~odebrání listu z~podstromu
+\algo
+\: informace o~zmìnì hloubky pøi\v sla z~levého podstromu do~vrcholu se~znaménkem $\odot$ $\rightarrow$ vrchol se~zmìní na~$\oplus$ a~dál se hloubka nemìní
+
+\: informace pøi\v sla zleva do~vrcholu s~$\ominus$ $\rightarrow$ mìní~se na~$\odot$ a~posíláme informaci o~zmìnì hloubky.
+
+\: problémová situace nastává, kdy\v z informace o~zmìnì pøi\v sla zleva do~vrcholu se~znaménkem~$\oplus$~$\rightarrow$
+\endalgo
+\> $\rightarrow$ rozebereme na~tøi~pøípady podle znaménka pravého syna nevyvá\v zeného vrcholu
+\itemize\ibull
+\: pravý syn má znaménko~$\oplus$ $\rightarrow$ provedeme rotaci vlevo, novým koøenem se~stává~$y$ (pravý syn), oba vrcholy zmìní znaménko na~$\odot$ a~posíláme informaci o~zmìnì hloubky
+\vglue 2 in
+\centerline{Prosím vlo\v zit obrázek ``opaèný syn má $\oplus$''}
+
+\: pravý syn má znaménko~$\odot$ $\rightarrow$ provedeme opìt rotaci vlevo, koøenem se~stává~$y$, následnì se u~$y$ zmìní znaménko na~$\ominus$ , u~vrcholu~$x$ se znaménko nemìní. Hloubka stromu se~nemìní, tudí\v z není tøeba posílat informaci..
+\vglue 2 in
+\centerline{Prosím vlo\v zit obrázek ``opaèný syn má $\odot$''}
+
+\: pravý syn má znaménko $\ominus$
+v~tomto pøípadì uva\v zujeme je\v stì vrchol~$z$ jako levého syna vrcholu~$y$, s~podstromy $B$ a~$C$, podstromy $B$ a~$C$ mají hloubku~$h$ nebo~$h-1$. Provedeme dvojrotaci, napøed vpravo rotujeme vrcholy $z$ a~$y$, potom vlevo vrcholy~$x$ a~$z$ tak, \v ze se $z$ stane novým koøenem, znaménko vecholu~$x$ bude potom~$\ominus$ nebo~$\odot$, znaménko~$y$~$\oplus$ nebo~$\odot$ (podle toho, jaké znaménko mìl pùvodnì vrchol~$z$), znaméko~$z$ bude~$\odot$ a~opìt posíláme informaci o~zmìnì hloubky stromu.
+\vglue 2 in
+\centerline{Prosím vlo\v zit obrázek ``opaèný syn má $\ominus$''}
+\endlist
+\
+
+\h {Obecn\'e stromy}
+\
+
+(Stromy s v\'\i{}ce v\v etvemi)
+\
+
+\>\it Pro\v c se t\'\i{}mto zab\'yvat? \rm
+\par
+P\v ri ulo\v zen\'\i{} dat na~disku se~sna\v z\'\i{}me, aby~se \v cten\'\i{} z~disku prov\'ad\v elo pokud mo\v zno co nejm\'en\v ekr\'at a~nez\'ale\v z\'\i{} n\'am tolik na~tom, kolik operac\'\i{} se~vykon\'a v~jednom uzlu. (\v Casov\v e je operace porovn\'av\'an\'\i{} zanedbateln\'a oproti \v cten\'\i{} z~disku)
+\
+
+\
+
+\s {Def:} \bf (a,b) strom \rm pro parametry $a,b$, $a \geq 2$, $b\geq 2a - 1$ je zako\v ren\v en\'y strom s~uspo\v r\'adan\'ymi syny a~vn\v ej\v s\'\i{}mi vrcholy, pro kter\'y plat\'\i{}:
+\par
+\> (pozn.: kdekoli~by mohl b\'yt syn a~nen\'\i{}, p\v ripoj\'\i{}me vrchol, kter\'emu \v r\'\i{}k\'ame vn\v ej\v s\'\i{} vrchol)
+\
+
+\
+
+\item{Ax 1)} data jsou ulo\v zena ve~vnit\v rn\'\i{}ch vrcholech a~ka\v zd\'y vrchol obsahuje o~1 m\'en\v e kl\'\i{}\v c\accent23u ne\v z m\'a syn\accent23u
+\item{Ax 2)} plat\'\i{} stromov\'e uspo\v r\'ad\'an\'\i{}
+\item{Ax 3)} ko\v ren m\'a $2$ a\v z~$b$ syn\accent23u, ostatn\'\i{} vnit\v rn\'\i{} vrcholy $a$ a\v z $b$ syn\accent23u
+\item{Ax 4)} v\v sechny vn\v ej\v s\'\i{} vrcholy jsou ve~stejn\'e hloubce (vn\v ej\v s\'\i{} vrchol$=$list)
+\vglue 2 in
+
+\centerline {Prosím vlo\v zit obrázek "ab strom11.gif"}
+
+$$ A < x_1 < B < x_2 < C < x_3 < D $$
+
+\s {Lemma:} $(a,b)$ strom na~$n$~vrcholech m\'a hloubku~$O(\log_a n)$.
+
+\proof
+Zjist\'\i{}me jeho minim\'aln\'\i{} po\v cet list\accent23u (ozna\v cme jej $m$): ka\v zd\'y vrchol a\v z na~ko\v ren m\'a alespo\v n $a$ syn\accent23u $\rightarrow$\
+$$m\geq~a^{(hloubka -1)}$$
+$$\log_a m \geq        hloubka -1$$
+$$hloubka \leq 1+ \log_a m$$
+\centerline{co\v z je \v r\'adov\v e  $O(\log_a n)$, kde n je po\v cet vrchol\accent23u.}\
+\
+
+\> \it Operace s (a,b) stromy:\
+
+\
+
+\s {FIND}\rm
+\item{-}V\v zdy zjist\'\i{}me, mezi kter\'e 2 kl\'\i{}\v ce hledan\'y vrchol pat\v r\'\i{} a potom se zano\v r\'\i{}me hloub\v eji.\
+
+\> \v Casov\'a slo\v zitost:
+$$O(\log b \cdot \log_a n)$$
+$\log b$ je \v cas str\'avený na~jednom vrcholu pro zji\v sten\'\i{}, mezi kter\'e 2 vrcholy hledaný pat\v r\'\i{}, $\log_a n$ je hloubka stromu.\
+
+\
+
+\s {INSERT}
+
+\> Jako Find, pøièem¾ jestli\v ze nena\v sel, skon\v c\'\i{} na~posledn\'\i{}m pat\v re a~p\v rid\'ame kl\'\i{}\v c
+\itemize\ibull
+\: pokud p\v rid\'an\'\i{}m nep\v res\'ahneme maxim\'aln\'\i{} po\v cet kl\'\i{}\v c\accent23u m\accent23u\v zeme skon\v cit
+\vglue 2 in
+\centerline {Prosím vlo\v zit obrázek "insert1.gif"}
+\: pokud p\v rid\'an\'\i{}m p\v res\'ahneme maxim\'aln\'\i{} po\v cet kl\'\i{}\v c\accent23u
+\endlist
+\itemitem{*}rozd\v el\'\i{}me vrchol na~3 \v c\'asti: L,x,P
+\itemitem{*}L a P jsou nov\'e vrcholy
+\itemitem{*}x je hodnota mezi L a P, kterou vlo\v z\'\i{}me o patro v\'y\v s jako kl\'\i{}\v c odd\v eluj\'\i{}c\'\i{} nov\v e vznikl\'e vrcholy L a P
+\itemitem{*}t\'\i{}m jsme p\v revedli probl\'em o patro v\'y\v s a opakujeme algoritmus
+\vglue 2 in
+
+\centerline{Prosím vlo\v zit obrázek "b klicu1.gif" a "b klicu2.gif"}
+
+
+\> pozn.: jestli\v ze se dostaneme a\v z do ko\v rene, rozd\v el\'\i{} se ko\v ren na 2 \v c\'asti, vznikne n\'am nov\'y ko\v ren se 2ma syny (co\v z je povoleno) a cel\'emu stromu vzroste hloubka o 1
+\par
+\s {Korektnost:}
+Pot\v rebujeme, aby
+$$|L|\geq a-1$$
+$$|P|\geq a-1$$
+po se\v cten\'\i{} obou nerovnost\'\i{} a~pri\v cten\'\i{} 1 na~ob\v e strany rovnice:
+$$|L|+|P|+1\geq 2a-2+1=2a-1$$
+prav\'a strana je rovna $b$ a~to podle definice $\geq 2a-1$. \par
+\s {\v Casov\'a slo\v zitost:}
+$$O(b\cdot \log_a n)$$
+\
+
+
+\s {DELETE}
+\item{-} p\v revedeme na~delete z~listu (stejn\'y postup jako u~stromu: jestli\v ze to nen\'\i{} list, prohod\'\i{}me tuto hodnotu s~nejmen\v s\'\i{} hodnotou podstromu jeho prav\'eho syna) --- v tomto pøípadì na~klíè posledního vnitøního vrcholu, proto\v ze listy jsou vnìj\v sí vrcholy bez dat.
+\itemize\ibull
+\: pokud m\'a vrchol, ze~kter\'eho odeb\'\i{}r\'ame st\'ale $a-1$ kl\'\i\v c\accent23u, m\accent23u\v zeme skon\v cit
+\: pokud m\'a vrchol(V), ze~kter\'eho odeb\'\i{}r\'ame $a-2$ kl\'\i{}\v c\accent23u a~jeho lev\'y sousedn\'\i{} vrchol(L) alespo\v n $a$ kl\'\i{}\v c\accent23u (kl\'\i{}\v c otce odd\v eluj\'\i{}c\'\i{} tyto vrcholy ozna\v cme $x$):
+\endlist
+\algo
+\: sma\v zeme nejvìt\v sí kl\'\i{}\v c lev\'eho sousedn\'\i{}ho vrvholu(L) a~nahrad\'\i{}me t\'\i{}m kl\'\i{}\v c otce obou vrchol\accent23u (nahrad\'\i{}me $x$ za~tuto hodnotu)
+\: p\accent23uvodn\'\i{} kl\'\i{}\v c otce($x$) p\v rid\'ame jako nejmen\v s\'\i{} kl\'\i{}\v c odeb\'\i{}ran\'emu vrcholu(V)
+\: t\'\i{}m maj\'\i{} oba tyto vrcholy $a-1$ kl\'\i{}\v c\accent23u a m\accent23u\v zeme skon\v cit
+\endalgo
+\vglue 2 in
+\centerline{Prosm vlo\v zit obrzek "delete21.gif" a "delete22.gif"}
+\itemize\ibull
+\: pokud m\'a vhchol, z kter\'eho odeb\'\i{}r\'ame(V) $a-2$ kl\'\i{}\v c\accent23u a jeho lev\'y sousedn\'\i{} vrchol(L) $a-1$ kl\'\i{}\v c\accent23u (kl\'\i{}\v c otce odd\v eluj\'\i{}c\'\i{} tyto vrcholy ozna\v cme $x$):
+\endlist
+\algo
+\: slou\v c\'\i{}me $V,x,L$ do jednoho vrcholu
+\: t\'\i{}m jsme probl\'em p\v revedli o patro v\'y\v s a opakujeme algoritmus \par
+\endalgo
+\vglue 2 in
+\centerline{Prosím vlo\v zit obrázek "delete31.gif" a "delete32.gif"}
+
+\> pozn. Dojdeme-li takto a\v z do koøene, na místo klíèe odebraného z koøene lze pou\v zít nejmen\v sí nebo nejvìt\v sí klíè novì slouèeného podstromu. Ten odebrat lze, proto\v ze po slouèení (které bylo pøíèinou této situace), je v nejni\v z\v sím vrcholu $2a-2$ klíèù.
+
+\
+
+\> \bf \v Casov\'a slo\v zitost: $$O(b\cdot \log_a n)$$
+\bye
\ No newline at end of file
diff --git a/7-stromy/Insert1.gif b/7-stromy/Insert1.gif
new file mode 100644 (file)
index 0000000..fa1505e
Binary files /dev/null and b/7-stromy/Insert1.gif differ
diff --git a/7-stromy/Makefile b/7-stromy/Makefile
new file mode 100644 (file)
index 0000000..788401b
--- /dev/null
@@ -0,0 +1,3 @@
+P=7-stromy
+
+include ../Makerules
diff --git a/7-stromy/ab-strom11.gif b/7-stromy/ab-strom11.gif
new file mode 100644 (file)
index 0000000..c00e8a8
Binary files /dev/null and b/7-stromy/ab-strom11.gif differ
diff --git a/7-stromy/b-klicu1.gif b/7-stromy/b-klicu1.gif
new file mode 100644 (file)
index 0000000..09c53c2
Binary files /dev/null and b/7-stromy/b-klicu1.gif differ
diff --git a/7-stromy/b-klicu2.gif b/7-stromy/b-klicu2.gif
new file mode 100644 (file)
index 0000000..cbae379
Binary files /dev/null and b/7-stromy/b-klicu2.gif differ
diff --git a/7-stromy/delete21.gif b/7-stromy/delete21.gif
new file mode 100644 (file)
index 0000000..30e5a56
Binary files /dev/null and b/7-stromy/delete21.gif differ
diff --git a/7-stromy/delete22.gif b/7-stromy/delete22.gif
new file mode 100644 (file)
index 0000000..4cf2e4b
Binary files /dev/null and b/7-stromy/delete22.gif differ
diff --git a/7-stromy/delete31.gif b/7-stromy/delete31.gif
new file mode 100644 (file)
index 0000000..d50ca8d
Binary files /dev/null and b/7-stromy/delete31.gif differ
diff --git a/7-stromy/delete32.gif b/7-stromy/delete32.gif
new file mode 100644 (file)
index 0000000..c57103f
Binary files /dev/null and b/7-stromy/delete32.gif differ