1 2+3+465 7 Dynamische Datenstrukturen · •17.01.01 •1 Dynamische Datenstrukturen" #%$ &(' !...

10
•17.01.01 •1 Dynamische Datenstrukturen O2 O2 O3 O4 O1 O2 O3 O4 O5 O6 O7 O2 O1 O5 O4 O3 Dynamische Datenmenge Welche Sorten von Datenstrukturen kann man mit Arrays implementieren? Beispiel: Stapel ( „Stacks“ ) LIFO - Datenstruktur push pop Stapel ( Stack ) O1 O4 O2 O3 Stapel ( Stack ) O1 O4 O2 O3 O3

Transcript of 1 2+3+465 7 Dynamische Datenstrukturen · •17.01.01 •1 Dynamische Datenstrukturen" #%$ &(' !...

Page 1: 1 2+3+465 7 Dynamische Datenstrukturen · •17.01.01 •1 Dynamische Datenstrukturen" #%$ &(' ! )+*,.-/ ' 0 O2 O2 O3 O4 O1 O2 O3 O4 O5 O6 O7 O2 O1 O O5 4 O3 1 2+3+465 7 8!9;:=

•17.01.01

•1

Dynamische Datenstrukturen

��� ������

����� ������ ���������� � �����!

"�#%$�&(' )+*�,.-�/�'0

O2 O2 O3 O4

O1

O2 O3

O4 O5 O6O7

O2

O1

O5O4

O3

1�2+3+465 78!9;:=< 2?>�@+3+ACB+2+DE 9GFHACAC4!IKJ

LNM�O P�QRCSLUTVP�W O RCX�Y[Z�S P�\�]�R

^`_;a=b c?d�e�fhgjiKk�l�mnk!o�o�k!o�kqpKb ro�k�csut�v w�x�yCzs|{}w�~ v yC������z w�����y

�K�;�����?�+��� �?�K�����n�!���C�!���q�K� ��C����`�;�����?�+��� �?�K�����n�!���C�!���(��� ���n�?� ����� � ������� �;�������C�6�C�6�C����n�;���!�?�`����� �?� � ���C +�!�n���¢¡�£+���K� ������

Dynamische Datenmenge

¤6¥ ¥ ¦�§�¨!¨�© ª�«?«�© ¬`­=¬C© ¨�®�¯�¬C¥ °�¬Cª�«�¬C® ¬n±!¦�® ¬Cª�¨�® ¥ ²�³�® ²¥µ´�«�© ¬`¶�¥ ·C¸�¥ ¦�­�­=¬¹¬Cª²�® º�¬Cª.´�²�­»º�²�¥%¼¦C²½ º[¬C© ®�¾ ª�½ ·C¥ ­�¦�® © ·Cª�º�²+¨�¿¬C© À�Á�¬C¥ ª�±�¦�¨!© ¨�®�¦�²�À[Á�«�¬C¥%Ã�¥ ²ª�«´�°�¦�¥ ²­Ä¤6¥ ¥ ¦�§�¨!© ª�«�¬Cª+­�¬C© ¨�® ¬Cª¶�¥ ·C¸¥ ¦�­�­�© ¬C¥ ¨�¿�¥ ¦�À�Á¬�ª�Å%¬�¨�® ¦�ª�«�® ¬C© Æ�«�¬C¥%Ç�¿�¥ ¦�À[Á�¬�¨�© ª�«%ÂÈ}¬Cª�ª�­�¦�ª�±�¦�® ¬Cª�­�¬Cª¸�¬�ª�© ­»É%¬CÀ[Á�ª�¬�¥%«�¦�¥ ¨�® ¬CÆ Æ ¬�ª+°�© Æ Æ ´[­�²�¨�¨!­�¦�ª�º�²«�© ¬C¨�¬�ª�±�¦�® ¬Cª­=¬�ª¸¬�ª�·C«�¬�¥%±�¦�® ¬Cª­=¬Cª�¸¬�ª�Ê Ë�¹�Ì ¬�³�® ¬Cª�­=© ª�«�¬C¨�® ¬�ª�¨�½ ·CÆ ¸�¬Cª�«�¬Ë�¿�¬C¥ ¦�® © ·Cª�¬�ª�º�²�¥Í6¬�¥ ½ Î�¸�²�ª�¸+¨�® ¬CÆ Æ ¬Cª�Ï

© ª�¨�¬C¥ ®¨�¬C¦�¥ À[Á«�¬CÆ ¬C® ¬

¬C© ª½ θ�¬�ª¨�²�À�Á�¬CªÆ ÐC¨�À[Á�¬Cª

Welche Sorten von Datenstrukturen kann man mit Arrays implementieren?

Beispiel: Stapel ( „Stacks“ )

LIFO - Datenstrukturpush pop

Ñ�Ò�Ó.Ô�Õ�Ö ×ÙØ�Ú!Û Ü�Ý�Þ6ß�à�áCâã à6ä�åã�æ�ãá æ�ãçèqã á é

Stapel ( Stack ) ê�ëì�í î ïnïCí ð�ñ�ñKòó ð�ï�ô=õö ö�÷ ø�ùµú û�ø�ü�ý�û�þ ÿ û���� ��ø� ����� ���������������������� �������

� � ��!�"$#�% & ')(�% !�& *$"+-,-.-/ 0 132�4 5�1�6 780 9�4�:;5)<>=�?

4�@ +BADC$E�FG�4�5�1�6>AH9 I)JLK�.�M�I�1�4�N :;5)<PO F

Q+-,-.-/ 0 132�4 5�1�6 7�=�?R4�S 0 G)73E�T-T>=�F QU U�VXW�Y Z$[$\)W)]^-_-`-a b c3` d�d-a e�f�g;e�h>^�i jPk�l�mon n n-p^-_-`-a b c3` d�d-a e�f�grq _-a a k�l�mon-n-n p^-_-`-a b cts�d-b u;^-_ v$wPk�x�`$y�e�c�i�d;ltm>n-n n p^-_-`-a b c x�`�y�e)c�iX^ d-^Pk�l�mon-n�n-p^-_-`-a b cts�d-b u;^-z�b g�i�k�l�m>n-n n l�{p

|$}�~����O1

O4

O2

O3

���-�

��

����

��

Stapel ( Stack )

� ���

�-� �-� � � � � � � ��� �r� �;��� �-������ �X�X��� �B���D $¡¢�£ ����� £ �r� £ � �)¤

��� ¥$�£ ����� £ �r� � � ¥���¤

¦

�-�-� � � � � � � � �����r� �-� � �����£ �)��� £ �¨§ �X�����o©ª¥�������« ¬ � � � ­���®>��¤

¦

�-�-� � � � � � � � �����;���>�)� �-�����£ �)��� £ �>��� �-�o�8�¯ $¡°� ¤

¦

± ²

³-´-µ ¶ · ¸�¹ º · »>³ ´ ¼�½o¾�¿�µ�À�Á�¸�ÂXº>Ã�Ä· ÅX¾�Æ Å ´-¶ ¶ ¾�Ã�ÃÇÄ

Â�º-³ È8È�ɼ�Â�Ê�¸�Ë�Ì Â�º ³PÍtίº�É

ÏÏÐ$Ñ�Ò�Ó�Ô O1

O4

O2

O3

Õ�Ö-×

ØÙ

ÚÚÚÚ

ÛÜ

Ý�Þ-ßO3

àáááááâ ãä

Page 2: 1 2+3+465 7 Dynamische Datenstrukturen · •17.01.01 •1 Dynamische Datenstrukturen" #%$ &(' ! )+*,.-/ ' 0 O2 O2 O3 O4 O1 O2 O3 O4 O5 O6 O7 O2 O1 O O5 4 O3 1 2+3+465 7 8!9;:=

•17.01.01

•2

Stapel ( Stack )

å-æ-ç-è é ê ë�ç�ì�í)ê�îXå ï-å>ð�ñ�òé óXð�ô í�õ>å�î ö-ð�ñ�ñ�ò

î�ï-å�÷ ÷ øù í�î�æ ù�ú;û î�ü�ê�ýoþ�î�ï-å ÿ���� ø

�ù í)î�æ ù�ú;ú æ-è è ø

å-æ ç-è é ê�� ï é �;å ù é ú î�ð�ñ�òó ï ù ð8é ú î�é � øDé ����î ï-å�ø¯é ÿ8ÿ ñtò ö û î í õ�� ï-æ�î�� å ù é ú î�è ú ð û î�ü�ê�ýPþ�é ��� î�ï î ù é ú�� ð�ñtñ�ø

����������

O1

O4

O2

O3

�����

!

""""

#$

%�&�'O3O3

(*)�+�,.-�/10�243 )65�7�-98;:=<4-4<4-?>

FIFO - Datenstruktur

@�AB CED�F�G HJILKNM O�P�QSR�TLU.V

W�XSY1Z�W�Z�W[ W�YZ�W�Z�WW�\^]N_ `a bEc XN_dLe�f�g

W�XSY1Z�W�Z�W

[ W�Y1Z�W�Z�W

hjilk m n�oqpsr�t iluwv�nyx�z�{�n�{�n}|

O3

tail

O3

O3

O3head

~������ � ���.� �w���4������������ ��� ����� �s�������w� � �w�.� �s������ ���s����� �w�L ����w¡�¢����� ���s����� �w������ £ ¢¤�¥.¦ ��§��q¨�©Sª�«���«��s¢¬ ¬�­s®w¯.°�± ² ³w´�± ®w² µ.¯¶�·�¸�¹ º »�¼�·�½�·�½�¾Sº ¿�ÀLÁ�ÂsÃ�Ä�Å

Æ ½wÂwÇÉÈjÀ�Â�º ¹lÈÉÊ�ËÌl·�½�·�½}ÈÉ¿�½wÍÏÎL¸.Ð�½w»EÀ�ÑNÁ�ÂsÃ}Ò Ë

Ó¶�·�¸�¹ º »�¼�·�½�·�½�¾�Ä�ÅÔÀ Æ º Õs¾�Ö.Ê�Ê×Ä�Ë ÓØ ØqÙNÚEÛ Ü�Ý�ÞsÚsßà�á�â�ã ä å4â�æ�æ�ã ç�è�é�ç�ê×àsë ì�í�î�ï}ð�ð�ð�ñà�á�â�ã ä å4â�æ�æ�ã ç�è�é�ò á�ã ã í�î�ï}ð�ð�ð�ñà�á�â�ã ä å�ó�æ�ä ô×ç�é�õlá�ç�á�ç�íLöSâ.÷�ç�å�ëLæ�î�ï}ð�ð�ð�ñà�á�â�ã ä å�ö�â.÷�çsåqëô�çwõlá�ç�á�ç�í�î�ï}ð�ð�ð�ñà�á�â�ã ä å�ó�æ�ä ô×à�ø�ä é�ë�í�î�ï}ð�ð�ð�î�ùñ

queue

újûlü ý þ�ÿ������ û����þ� ����þ���þ��

„wrap around“

head

O3

O3

O3

O3

O3

tail O3

tail

������� � � ����� ������ ���������!#"$�&%'��)(*��+ ,� -#! . - ��� � !'+�+ ��������0/ (21�� � 3546�7

� -#!*(21�� � 4$4#!2 ���������8 � ���9�(':;&<�+ +(21�� �04>=�7

��� ?&�@(21�� � A$A*7B������� � �5" �C%2����(D���� ���������!'+ ,� -#! . ��EF��( G�!'+�+ ," �C%2����(#��46 ��������0/ :��1��03 7� -*!$:��1��H4$4I!' ���������8 � ����9�(':�;&<�+ +

:��1��H46=�7��� ?&�J:���1�0A$A*7K ��('� K �L��7

B ��� ?&�K �('� K ������� � 7

B

MONQP RSNUT#T*NUT#NWVYX�ZFT*NQ[

O4O1 O2 O3

\']_^a`$b c

d*eIfLg ]ih'j_^_kCl_]_mn eIfLg ]ih'` oD^Yprq#k&srqDc&cCq*c�qutrg v�cCq#]

w�x y�z�{C|} y~ x {C�'����| y�����{

�r�6�I�#�i�i�*� �i�r�#�&�5�*�&�C�*���u�r� ���C�#�� �6�I�#�i�i�*� �i�r�#�&�5�*�&�C�*�����a� �&�5�i� � �&� � ���C�#�� �6�2�C�#���$�C�$�C�#��r�6�$�*�i� �)�L� �_� � �$�C _�*�5�#�¢¡'£_�L�r� ���C�#�

Page 3: 1 2+3+465 7 Dynamische Datenstrukturen · •17.01.01 •1 Dynamische Datenstrukturen" #%$ &(' ! )+*,.-/ ' 0 O2 O2 O3 O4 O1 O2 O3 O4 O5 O6 O7 O2 O1 O O5 4 O3 1 2+3+465 7 8!9;:=

•17.01.01

•3

¤#¥�¦¨§#©'ª_«L¬�­r®_¯5°²± ³�´¶µ_·u¸Q¯$¹C·#®_³�¹C«Cºi»�¹Cº_«C·#®a¼

½�¾�¿�À�Á�Â�Ã�ÄLÅ Æ'Ç�È�É�Ê#Ã�Ë ÉCÂ�ÄFÉ�Â�Ì�ÉCÂÍ&Î Ã�Ç�È�Æ2ÉCÂaÏ�Â�ÀrÆ�Ç�È�Ð Ï�ÄFÑ�Ò É&ÂaÓ�Ï�Ð�Ô�Ã�Ï�Ò Ó)ÉCÅ Ë�Õ

Ö È�Â�É$× Ö Ð ØÉ�Â�Â�Ë Â�Å Æ2Æ'É�ÙÚCÛ�ÜLÝ&Þß ÜLÝ�à&ÚCÛ Û ÚCß á�â�ã�ÝCÛ Ú�äLå*Û æCç�Ú

èDé ê&ë�ì�í

î�ï�ðCñ�ò�órô õ ö ÷ø¶ù0ú ú ò�ðCõ�û

üLý*þ ÿ��rþ2ý�� ý�������� ��������� ��

O2 O2 O3 O4

O1

O2 O3

O4 O5 O6O7

O2

O1

O5O4

O3

Dynamische Datenmenge

�����������

�! �"�#! %$

&�'�(�)+*�,

-�.�/�0!1%2

34�5�6�7�8�4�7�896�7;:�<=�>�=@?BA�5�C�:�7;:

D�D�E�F�GIH

JLK�MON�MOP�Q@ROPSK

TVU�P�QROP�K

2. Einfach verkettete Listen

Java

Kopf

WYX;ZY[@[]\Y^@[_+`Yab@ced^�f�_gf;h�iYjSc@kml\Y^Y[_+`Yab@cnf@c;o�_�lpqpnp

r

rekursive Definition

4 sBtBu v 3 wBxBy z6 {B|B} ~

Einfach verkettete Liste

head

O1 O2 O3

head

O1 O2 O3

�+�����+���;�+��������+�]����Y� �������������;�+�;������+������+���I�+���;���

// Konstruktoren���+������+���m���� S¡��;¢���£��;¤¦¥�§���¨;��£���©ª�+�;�����Y�¦�+�I£g«%¬

�+§���¨��£;��­I£��+¤+¥+§���¨��£�S®£���¯;��­I£�®

°

���+������+���m�±«%¬�¦²������L£�³;§+§�©ª£¦³§�§´«@® °

°

null

Beispiel: Stapel ( „Stacks“ )

LIFO - Datenstrukturpush pop

µY¶·�¸Y¹;º»¹;¼Y½;¾@¿@À;ÁSº;¾qÂ@½�ÁYº;Ãeĵ@¶@·�¸@¹;ºgÅYÆY¹�Çnµ@¶�È+ÉËÊ9Ì;·�Í�¾Sº@½g¾S¸�¾+Î�¾@¼Y½ÐÏ�ѵ@¶@·�¸@¹;ºgÌ·�Í;¾@ºS½ÒµYÆ;µËÊ�Ï´½+É�¿;Æ;Ó�È´Ô�ÎYµ�½�ÕOÂ@½�ÁYº;ÃÔÖSº;¾µ�½@¹�Æ@¼ ;×@Ø@Ù�Ú@Û;ÜgÝÙ�Þ;ß@ÜSànà�á;×Ëâ�ã´à+ä�å;á;æ�ç´è�éY×�à�êOë@à�ìYÜ;íèîSÜ;ß×�à@Û�á@ï ;ð@ñ@ò�ó@ô;õ´òSööSó�÷Yøùqô@ú+û�üYð�ý�þ�ÿ����

����� ��� ������ ��� ���������

�� �! "��#$�% #&�' !�(*)+� %-,

%/. )+�

Implementierung der 0213�4 576 8 Operation

head

O1 O2 O3

9;:�<>=@?BA>:DCFEHGDIH9�J$KHL>:NM�O$P9;:�<>=RQ :HSH: <$:HA&9T?BU�P9;:�<>=RQ A>:DUD9V?VWD:DX>L�PWD:DX;LB?Y9�:�<H=NP

Z

[$\�]$^D_H`Ta&b>_Hcd[&\$e fhgji�]lk�mD`DnTmD^>m opm>qDn@rYsfDmDt>cBuFqHmDvTw&_HeHn�xpb;cDmNgjmD^;m;o&m>q$nlyzfDmHtHc{rp|

}

Page 4: 1 2+3+465 7 Dynamische Datenstrukturen · •17.01.01 •1 Dynamische Datenstrukturen" #%$ &(' ! )+*,.-/ ' 0 O2 O2 O3 O4 O1 O2 O3 O4 O5 O6 O7 O2 O1 O O5 4 O3 1 2+3+465 7 8!9;:=

•17.01.01

•4

Implementierung der ~-��&�N�2�2�����D���$��� �&�

�>���D� ����� ���������������>�;���;� �����-���H���/�;���;����� � � � �V�������;���H��� � �D¡�¡ � ��� ��¢H£;¤�¥H¦p§;¨*©2ª;«

¬�­>®�¯>¬/°�±�­;²�³�´�´�°�¯>µ µp¶·

¸;¯�¹Hµ�º »�¼/¹D½�­;»�®¿¾pÀ ¾hÁ2ÂzÃ�Ä>Å Æ Ç�È�ÉHÊË/Ì Í�Î2Ì Ï2Ð Ñ/ÉHÒ2Ð Ó Ë�Ì Ô Õ2ÖF×Ø�Ù@Ú�Ø Û�Ü�Ý Þ&ß�à�Ú á�á

ß/â�ã ä å�æ ç�å�Ü�Ý�ÞDß/à>è�ß�é ê ë/Ü;ì�ê ç�Þ&ß�Ø�ä�æ�Ú á>íî/ï&ð ç�ê;ß ç;ñ�ç/Ý>ç�æ;ßzò�â;ç�é ó�ô ç;ñ/ç/Ý>ç�æ;ß$íâ;ç�é ó�òzâ;ç�é ó�ô æ ç�ì�ß$íã ç;ß/õ;ã æ�ç;ñ�ç/Ý>ç�æ;ß$í

öô�ô�ô

return

head

O1

O2

O3

O0

÷ ø ÷ ù&÷ ú2ûüDýÿþ�� �7ý������� ������� ���� ��������������������� ���� ��

first O1

O2

O3last

FIFO - Datenstruktur

��� � !#"�$�% &('*),+ -�.�/*021*3�4

576*8,9�59�5: 578,9�5;9�5< =�>�?A@ BDCE F#G 6 BH IKJL

576�8�9�59�5

: 578�9�59�5

576�8�9�59�57M*9�6 :N: 578�9�579�57MDO @ 5 F I B�< G 6�56

P7QSRKT;U;VXWY;U[Z]\^[_[Q\[Q;\�`baSR�c�\7V;de^[\f[gTS\Sh7\[^idkjklUmn`oUpSg�h[P,d�q�`Djrj

mU[sp;dXt�T;u;pdvtr^;\few7U;p;dyxKYSZ\�`z^[\f[gTS\Sh7\;^7dkj�{\;T7p�\T[u;pdXt�T[u7p[d�| ^\[}detr^;\;f]wUp;d�x�YSZ[\�`�^;\fSg7TS\�hi\;^d~ji{

PiQ�RiTU;Vea�R�cS\V;deZ[\[_;Q;\[Q\�`DjXd��7s;Y[f7pvgSh[P�d�q�SQ7\SQ\;g;}V[\�PKd;U[Y[^�lUm�`oU;p[g�h;P�d�q�`Djrj

d��7s[Yfe^;\fXgSh[P�d�q�SQ7\SQ\;g;}V[\�PKd;U[Y[^�`#�#w\[\s[\A�,u[s;d[\p;V��7T[u[^;�;\����Sj�{aSR�c�\7V;de\;T[\�hi\[^det�m;U[s7p[dSgT[\�hK\[^d�| \T[\�h7\^d {mU[sp;dSg;T;\�hi\;^7dvt�m;U;sp[d[g;T[\�hi\[^id*| ^\[}7d {s;\d�Q7s[^r\;T[\�hi\[^d*{

�2� � �����������]���*���7�������*����� ����� ���v��� ��S�*��,�,�D� �7�i���i��� �i�K��� �  �¡[�7¢,£�� � �[¤�¥

als Implementierungstechnik für Stapel und Warteschlangen

¦�§[¨ ¨ ©�ª «©�¬ §S­ ® ¯�°7©y°2® °²±[¯�°³#­ §S°7­ ©�¬K´K©�® ­µ�¶ ·2¸7¹ º�·2º�»7¼ ½ º�¾ ¿»7À[º�»²ÁS¹ ÂKú�¾ Ä�º�¼ ¼ º�¼ º�Å;½ Â�¼ º�Â�½ »7Æ�º�½ »7Ç Á[È�É7º�¾i¿»ÆvÊ˺�¾ Â#½ ÈyÉ7¼ ¹ ½ Èyɺ�¾DÌÃ;Í�¾iÁS¹ ¹ º�·]˺�½�Æ[º�¾i¶ ·b¸;¹ º�·2º�»7¼ ½ º�¾ ¿7»À�Ã;Í�»�ÎoÁS¾ ¼ º�Â�Èyɹ ÁS»7À;º�»,Ï

Ð�ÑKÑ7Ð7ÒÔÓKÕiÖ7×*ØiÙ7ÚiÛ

ÜÝzÞ[ß à á�â�ã�ä7å ÞSæ7ç[á�èbé à�ê Þ[ß ß Þ�ëiì í î èbï;å á�è2á�æ7à é á�ß ðæ7çKñò óiôõ ôKóiö7÷�ø7ù

First Last First Last FirstLast

und ...

ú�û�ü�ý þ�ÿ ü��þ,þ#ý ����� ��� � ��� � ����� ü��²ü��7ÿ ý ü�� �����;ü��²þ������7ü�� � ü���� ü�ý �[ü�����������2ý þ����;ü ���ü�ý ���;ü�� ��� � !�"��;ÿ ý !���# $%'& (�)�*�+ ,�- . /1032�4�5�+ 03. - )3*�,�6�7989,�- )3*�,6 :9,�6 ;�6 (�2�)�*< 5�*�6 ,=�>?>9,�6A@ (96 6 (B�C D EF,�6 >�G�8�8�,�. 2�=�H

I ,�*�6�,�- =KJ�6 G�;�. , I ;�,�-�(�=�>9,�6 ,�=J96 G�H�6 ( I�I - ,�6 4�8�6 (�)3*�,�=�(�. 4L;�,�-�M�(�:�(�N

An eine beliebige Stelle der Liste Elemente Einfügen und Löschen

O PFQ�R�S�TU R�V R�T3R

head

O1 O2 O3O4

current

Page 5: 1 2+3+465 7 Dynamische Datenstrukturen · •17.01.01 •1 Dynamische Datenstrukturen" #%$ &(' ! )+*,.-/ ' 0 O2 O2 O3 O4 O1 O2 O3 O4 O5 O6 O7 O2 O1 O O5 4 O3 1 2+3+465 7 8!9;:=

•17.01.01

•5

W X�Y�Z

Einfügen

O1

[

O3O4

current

\9]^9_a`cb�]�dfe�g�h�\3i�j�k9]ml�n�o\9]^9_Kp ]�q9]�^�]�b�\r`csFo\9]^9_Kp b�]�s�\t`vuw�x9x�]�b�\yp b�]9s�\1ou�w�x9x�]9b�\yp b9]�s�\r`z\�]�^9_ o

. . . . . . . .

{�|�}�}�~9���F� ��~����t�f��~��f�������������9~m���F��{|�}9}9~����F� �9~����z���

Löschen

O1 O3O4

current

. . . . . . . .

����9�9�����F� �9�����t�z������9�9���F� �������'� �9�����L�

�L�����F���F 

next next next

¡9¢¤£F¥'¦?£L§�¨�©ªm«K¬F­�£F«¯®'¡�°�±K²³²a´µ¨©3ª?«K¬F­�£F«·¶¸�¹ º�» ¼�½ ¾�½�¿ À�¹ Á� Ã�Ä�¼�Å�Æ�Á�Ç?È�É�º�Ê�Ë�Ì�Í�¼�Î Ï�½ ¹ Ì�Á�¼�Á�º�¹ Á�Çm¼�¹ Á� Ï9Ê3Ë�Ð

Ñ ¼�Á�Á�¼�¹ Á?ÒyÌ�Î Ä�Ó�Á�Ä9¼�Î Å À�Ô ¼�Õ�¼�Á�½�Ö�Ì�Î Ë�Ï�Á�Ç9¼Á�¹ º�½�×ØFÁ�º�Ì�Á�º�½ ¼�Á�Ë�Ï�Ù9¼�Á Ñ ¹ Î�¾ Ñ ¼�¹�º�Í�¼¾�¹ ¼�Ô Ô ¼ÛÚ�Ó�Ô Ô ¼�¿

Å�È�É�º�Ê�Ë�¼�Á�Ç9¼º1¼�Î º�½ ¼�Á�À�Ô ¼�Õµ¼�Á�½ º1Ç�¼�Î�È�¹ º�½ ¼�×Å�À�¹ Á� Ã�Ä�¼�Á�Ð Ñ ¼�Á�Á�Ç�¹ ¼ È�¹ º�½ ¼ÛÔ ¼¼�Î�¹ º�½Ü×Ý�Î Ì�Ù�Ô ¼�ÕfÙ�¼�¹ ÕfÀ�Á�½ Ñ Æ�Î ÂÖ�Ì�ÁKØFÔ Ä�Ì�Î ¹ ½ Ë�Õ�¼ÁÒy¼�Î Æ�Î º�Ï�Ê�Ë�¼�Á�Ì� ½�Ú�¼�Ë�Ô ¼�Î�Ù�¼�¹�Ç�¼�Î�Þ Õ�Í�Ô ¼�Õµ¼�Á�½ ¹ ¼�Î Æ�Á�Ä

ßÛÕvà Î ¼�Õ�Ì�Ö9¼�á Å�Æ�Á�Ç�à ¹ Á�ºÜ¼�Î ½Üá Å�âFÍ�¼Î Ï�½ ¹ Ì�Á�¼�Á�Ã�Ù9¼�Î º�¹ Ê�Ë�½ Ô ¹ Ê�Ë�¾3Æ�Ë�Ï�Ô ½ ¼�Á�РÃ�Ä�¼Á Ñ ¹ Î�¼�¹ Áµà ãFÆ�Õ�Õ�ä�á Å å�Á�Ì�½ ¼Áµæº�¼�Á�½ ¹ Á�¼�Ô�ç�¼�¹ Á�×

„Dummy“ -Knoten

O2 O3O4

current

head

èÜé ê�ê�ë

ìFí�î�ï

ðÜñ ò�ò�óôLõ�õ�ö�õ�ôL÷ øù�õ

ú�û ü9ý þ3ÿ û � � ���������� 3ÿ ����� � ü���ý ��� ����� ý ÿ �������� ����� ������� �����! �� ���"�# $�%�$'&)(�* $�+,$�-�./%�$�01�2 & . $!3�4�.-�5�-6$�2 -�$�-�798�0 :�;�-�:�$�0

Einschränkungen bei einfach verketteten Listen

currenthead

O2 O3O4

< = >'>�?

@�ACB�DFE�B�DGDIH9J K�LMK�DGN KODGPGQ)DGB�R�SMR'PGQ Q K�DGNGK�T DGU VW/K�D�X

YOZ)[�\M[�]^/_G]`_Ga�b'c`de�f _G[/g�hf e�i/j [�kMj e�l

mOn oGp�q q r s�r p�o/t�u vxw�y z{�o/zp�y)p�r o/p�|�}oGw�t p�oMq r oG~�p�o

current current

�6�����x���`��� �I���x���6�������������6� �/�����

O2

tailhead

O1� � �'��� � � �'���

���G�!�9���!�9�)�/�!�) 9¡£¢¤)¥�¦ ¡9����¡!�G¡�§x¡)¨��O©���)�9�����G !¡ª¨)¡)«��6©���)�9�����G !¡�¬�­)¡G®`©

¯

Page 6: 1 2+3+465 7 Dynamische Datenstrukturen · •17.01.01 •1 Dynamische Datenstrukturen" #%$ &(' ! )+*,.-/ ' 0 O2 O2 O3 O4 O1 O2 O3 O4 O5 O6 O7 O2 O1 O O5 4 O3 1 2+3+465 7 8!9;:=

•17.01.01

•6

°I±)²�²�³/´ µx¶x³·�¸�³/µ�µ�³/µ'³C´ ³G³G·�³º¹�» ¼�µ�³

tailhead

½ ¾ ¿�¿�À ½ ¾ ¿�¿�À

Á!Â)Ã�Ä9ÅGÆÇÃ�È)È�Ä/É9Ê)ËÌÅ9ÍÎGÏ!ÁxÐ�ÑÓÒÔGÉ�ÐÂ�ÔGËÖÕ!É)Ê)×`Ø�Ë)É9Ù�ÐÇÚ9ÚÛÐ/Ê�Å)Ä�Ü

Ý

ÞOß à�á âäã�åGà

O1 O3 æ ç è éæ ç è éê ë ç ì

í î ï ð ñò ó ï ô

ò ó ï ô

õ/ö÷�ø9ù�ú�öüûüõ�ö/÷þýÿ�����ø)ùú�ö������õ/ö÷�ø9ù�ú�ö�� ��ö�� û���������ö/õ���õ/ö÷�ø9ù�ú�ö�� õ�ö���� û���������ö/õ���� õ�ö�����õ/ö÷�ø9ù�ú�ö�� ��ö���� õö���� ûüõ�ö÷�ø)ù�úö�õ/ö÷�ø9ù�ú�ö�� õ�ö������ ���ö�� ûüõ�ö÷�ø)ù�úö���������öõ�� ûüõ�ö/÷�ø9ù�úö�

currentcurrent

�������� �!�"

#O1 O3 nextnextnextprev prev prev

$�%�&�&�'�(�)+* ,�&�'�-.* (�'�/�)102$3%�&�&�'�(�)�* (�'�/�)�4$�%�&�&�'�(�)+* (�'�/�)�* ,�&�'�-�02$3%�&�&�'�(�)�* ,�&�'�-.4$�%�&�&�'�(�)1065�'�7�8�4

current Garbage

9;:�< =?>?@?AB:�@6CB:�D�E�>?E;CB:�D3FG:�HIH�:�H�:KJG< E�H�:�@

Einfüge- und Lösch-Operationen( wenn Position bereits bekannt ist )

L�M N�O�P�Q�R STN�M UM VTU�W�X�Y�VZU P�Y�UZ[

O(1)

\�] ^._�`�a�b cT^�] de�f�g�h�d�] i\�a�j kle�mZkIe�g�] d dn�o gqp�^�j�_�f�g�h�^p�^�j�_�] mZd ^.`�rts

uwv x�y

zB{}|�~��B�?��� �?�G���3�G���3����������� �3�G�B� �+�3� � �������

O2O1 O1 O2

head

�����Z�T� ���Z�������Z�����T�T���l���t� �3�I���

��� ��� � �T¡�¢ £ � ��¢ £ ��¤�¥�£ ��¦B§���¢ ¨�¥�� £ ��¦

©lª §���¢ «�¦�¬���¢ ¦�� �Z£�¦ ª ¢Z��¬�� �.­�� ¦�® ¯�°���± ²�³���¢ ¥�£ � ¡�¦

´+µ�¶3·I¸ ¹�¶3·�¹�ºG¹�¶3»�¹�·3·�¹�·3¹�¼B¸ ½�·�¹�¾

O3O1 O2

head

¿ À ÁIÁZÂ

ÃÅÄ Æ�Ç�Æ È�É�ÊlË�Ì3ÍqÎ�Ç�Ï Ì�Ð�Ñ Ì�ÒIÓ�Ä Ì+Ô�Ì�Æ Õ�Ö Ì�Ä ÊTË�Ç�È�Æ�×ZÄ Í�Ó

Ó�Ø Ë�ØTÙ�Ö È�×Z×TÌ�ÍBÔ�Ú3ÍqÎ�Ç�Ï Ì�Ð�Ñ Ì�Ó�Ä Ì.ÛÜÄ Í�Ó�Ì�×TÑ Ì�Í�×�Ì�Ä Í�ÌÝ�Ì�Æ Õ�Ö Ì�Ä ÊIË�×ZÛ�Ì�Ñ Ë�Ú�Ó�Ì.Ó�Ì�Þ Ä Í�Ä Ì�Æ Ñ�Ë�È�Ç�Ì�Í�Ø

ß.Û2à Æ Ì�ÛÜÚIÔ�Ì�á â�É�Í�Óqà Ä Í�×ZÌ3Æ Ñ á â�Î�ã�Ì�Æ È�Ñ Ä Ú�Í�Ì�Íqä�Ç�Ì�Æ ×ZÄ ÊIË�Ñ Ö Ä ÊIËqåTÉË�È�Ö Ñ Ì�Í�ÒlÞ ä�Õ�Ì�ÍBæ�Ä Æ�Ì�Ä Í�à ç�É�Û�Ûqè�á â Ù�Í�Ú�Ñ Ì�ÍÜé�× Ì�Í�Ñ Ä Í�Ì�Ö�ê�Ì�Ä Í

Page 7: 1 2+3+465 7 Dynamische Datenstrukturen · •17.01.01 •1 Dynamische Datenstrukturen" #%$ &(' ! )+*,.-/ ' 0 O2 O2 O3 O4 O1 O2 O3 O4 O5 O6 O7 O2 O1 O O5 4 O3 1 2+3+465 7 8!9;:=

•17.01.01

•7

ë�ìlí�î3ï�ðñð3î�ò3ó�óõô�ö�ï�ó3÷Zø�ù3ú3ûýüþ ùTÿ3ë�ò���òZí�î3ûñû�î3ûZÿ�û���÷��ô�ö�ï�ó�÷ ø�ùIú3û���û���÷��ô�ö�ï�ó�÷ ø�ùIú3û ë��Iû��

// Konstruktoren� ����������� �����������������! ��#"���$�%�$�������&���')(�� �*�*"+��&+��,� ����������������&���-��.,!� ��� ���#�+��������%���/10+2

�����#"���& �43�&���')(�� ���*"+��& ��5�)6+���7 &���- �438&���-+��5�)6+���7 ��%���/93:��%���/;5

<

� ����������� �����������������! ��#"���$�%�$�������&���')(�� �*�*"+��&+�=0>2�)6+�����?&���')(�� �*�*"+��& �.,@&������.,@&�� ���A0 5

<

� ����������� ������������������0>2�)6+�����?&�� ���.,B&�� ���.,@&�� ���A0�5

<<// end of class DListNode

CEDGFIHKJGL JNMKO PRQ)S?T PRU?PNL�V�WXO JGY�Y�P

Z.[�\.]�^�_`_+]+a�b+bdc�e�f+Z;a+g�a�\] hi�j�k h�l+h�g1^�f+Z]+h�f�h�j�k�bdc+e�f+Z.a�g+a�\]+hnm

Z.[�\]�^�_d^ j�k1j [�f�\�h�gNo

Z.[�\]�^�_d^ j�k`_ e�f�Z.a�g+h�p erq s�\�t�h�_�kAe;uvmc�e�f�Z.a�g�a�\.] hi�j�k h�l+h�g`k h�f+Zxwyq c�e�f�Z.a�g+a�\]+h�i j�k�h�l+h�gu>eNo^�z{q|k�}�^�bN~ j [ f�\.h�g1�xk h�f�Zr~ j�[�f�\.h�gIu

g+h�k�[�g�j���oh�]�b+h`^�z�q:k�}�^�b�~ j�[�f�\.h�gv�1k+h�f�Z?~ j [+f+\.h�gxu

g+h�k�[�g�j�����oh�]�b+h

g+h�k�[�g�jv�Ro�Z.[�\]�^�_`�+k+g�^+j+l�k e���k+g+^�j+lrq#uvmg+h�k�[.g jn���)�+j�[�f�\.h�gRo

��// end of class ComparableInteger

�E�G�I�K�G� �N�K� �N�K���������X� �G�����

�.��������`� �� �¡�¡d¢+£�¤�� �¥+ ��.�+¦�§+��¤¦d��¤+��+¦�¤�¦�¨�©�¡d¢+£�¤+�. �¥+ ���+¦«ª¬d¬`¬�����;�+���d� ¨.©1�+£�¤��. �¥ ¦�§+£X­¯®��;° ¦���©d£I±vª¢�£�¤�� �¥+ ��.� ¦�§+��¤�¦�©+��¤.¦`²�­ ¢+£�¤�� +¥� ���+¦�§ ��¤�¦±=£N³��´�­:©�µ.��¡ ¬ ¦�¶+�� ��·­:©+��¤¦x±`±¸¥ ¦.©���¥+¨v¹N³¦���¡ ¦v�+´{­|©�µ���¡ ¬ ¦� �¥��+��¦�¥·­:©+��¤.¦�±d±=¥ ¦.©���¥�¨�º�³¦���¡ ¦v¥ ¦.©���¥+¨x»+ºR³

¼¬d¬`¬�����;�+���>�.£�£+� ¦� +¨d¦�¶ �� ��X­ ¢�£�¤+�; +¥� ��� ¦.§ ��¤.¦v©���¤�¦�±�ª��´�­`­ © µ���¡ ¬ µ�£��.¥�¡1²�²�© ��¤¦ ¬ µ�£ ��¥�¡�±`½�½

­ © µ���¡ ¬ ¤� ¨���© ¦�¡A²�²`©���¤.¦ ¬ ¤.��¨ �.© ¦�¡�±`½+½­ © µ���¡ ¬ ¡ ¦���£ ¨�¾�¡A²�²`©���¤.¦ ¬ ¡�¦.� £+¨�¾�¡�±`±¥+¦�© ��¥ ¨�©+¥���¦N³

¦���¡ ¦¥+¦�© ��¥ ¨v´� +��¡�¦�³

¼¬d¬`¬¼

// end of class ComparableTime

¿@À·ÁxÂKÃGÄ+ÃNÅKÆ ÇNÈKÉ�Á�Ç�Ê*ËrÆ ÃGÌ�Ì�Ç

Í.Î�Ï.Ð�Ñ�Ò`Ò+Ð+Ó�Ô+ÔdÕ�Ö�×+Í;Ó+Ø�Ó�ÏÐ Ù.Ú Ñ�×.Ù`Ñ�×+Í.Ð�Ù�×.Ù�Û�Ü+ÔdÕ�Ö�×�Í.Ó�Ø+Ó�Ï;Ð Ù«ÝÞ`Þ`ÞÍ�Î+Ï.Ð�Ñ�Ò9Ï;Ö+Ö�Ð+Ù�Ó Û`Ù�Ó�Ø�Ð�Ñ Ù�Ø·ß|Õ�Ö�×�Í.Ó+Ø�Ó�ÏÐ+Ù�Ú Ñ�×�Ù�Ü+Ñ�×Ùxà�Ý

Ñ�á�ß`ß Ü�â�Ñ�Ô Þ â�Ö Î�Ø�ÔAã�Ü+Ñ�×�Ù Þ â�Ö+Î�Ø�Ô.à«ä�äß`ß Ü�â�Ñ�Ô Þ â�Ö Î�Ø�Ôæå�å�Ü Ñ�×Ù Þ â�Ö Î�Ø�Ô�à�ç�çß Ü�â�Ñ�Ô Þ ×Ñ+Û ÎÜ�Ù�ÔAãxÜ Ñ�×Ù Þ ×Ñ+Û ÎÜ�Ù�Ô.àdàèä+ä

ß`ß Ü�â�Ñ�Ô Þ â�Ö Î�Ø�Ôæå�å�Ü Ñ�×Ù Þ â�Ö Î�Ø�Ô�à�ç�çß Ü�â�Ñ�Ô Þ ×Ñ+Û ÎÜ�Ù�Ô1å+å�Ü Ñ�×�Ù Þ ×Ñ Û�Î�Ü Ù�Ô.à+ç�çß Ü�â�Ñ�Ô Þ Ô Ù�Ò Ö�Û+é�ÔAãxÜ Ñ�×Ù Þ Ô Ù�Ò Ö�Û+é�Ô.àdà

àØ Ù�Ü�Î�Ø Û�Ü Ø Î�Ù�ê

Ù�Ð�Ô�ÙØ Ù�Ü�Î�Ø Ûvá+Ó�Ð�Ô ÙNê

ëÞ`Þ`Þë// end of class ComparableTime

ìEíGîIïKðGñ ðNòKó ô�õ*ö#÷?ø�ôNñ�ù#ðGúRô

û�ü*ýXþ ÿ�� ÿ���� ��� � � ��� � ÿ����

û�ü*ýrþ ÿ � ÿ���� � � � ������� û�ü*ýrþ ÿ � ÿ���� � �������

��� � ����� � ��� "! ! #

Polymorphismus

$&%('*),+�-(',)*-/.0-(',12-�)*)*-�)*-435+�67)*-98

:<;>=@?*A,BCB�?�D<E�ECF>G,H,I�J�K,L*A*E�I4M

N L,A*E,I�O@G,K�JQP,J*D>KSR

:@;�=T?,A*BCF>G�H<I�J,K�L<A,E,IVU�WXMN L,A<E�I OYG>K,JCK>;>Z,Z<[]\_^*J,` N L,A<E�I�OTG�K�J9U2^,;*?,?bac^,;*?,?bac^>;@?�?dWTRK�;�Z*Z*[Ve ^�J,f*I_\CK�;�Z*Z*[�RK�;�Z*Z*[Ve :@H�J>g]\CK�;�Z*Z*[�RP*J,D,K_\CK�;�Z*Z*[SR

h

:@;�=T?,A*Bi=@G�G*?>J*D>^]A*E>j�Z�:7I"[�U�W]MH�J*I>;*H>^QP*J,D,KSe ^,J,f*I_\�\QP*J*D�KbR

h:@;�=T?,A*Bkg*G�A,KlZ@D,m�J,j�Z,:TI>[�UnWXM

P*J,D,KSe ^*J�f<I_\_P*J*D>KSRP*J,D,KSe :YH>J�g]\_P*J*D>KSR

he�e*e

Page 8: 1 2+3+465 7 Dynamische Datenstrukturen · •17.01.01 •1 Dynamische Datenstrukturen" #%$ &(' ! )+*,.-/ ' 0 O2 O2 O3 O4 O1 O2 O3 O4 O5 O6 O7 O2 O1 O O5 4 O3 1 2+3+465 7 8!9;:=

•17.01.01

•8

o0p(q,r*s�t(q*r,tdu&t(q*v0t9r,r*t9r,t4w5s�xyr,t9z

{@|�}@~*�,�C��~��<���C�����,�����,�*�*���4��*���{@�,�>�<�,���_�<�,�>�]�>�<�>�*�,���2�*�*�,�*� �@�,���X��|*�*�>�,�<�y�c�,�,�<�����T�����C�*�>�*�/�@�

�*�>�*� � {T���>�]�]��|<���,���<�y��*�>�*� � �,�,�*�_�]��|<���,���<� � ���*�*�7���|*�*�>�,�<� � ���*�*�_�Q�<�>�,����*�>�*� � �,�,�*� � {@�����C�C�*���,�b�

�{*|>}T~,�,�Q���<�Q�>�@�"�����]�

���*�C���>|*�*���<�_�X�7��*�,�<�����T�����X�����,{X�Q�*�*���b��,���k� �*���"�*{T�� 9���C�]�

¡>�<�,~>�¢�£�>����{ � �,�,�<�¤� �Q�,�*���d�X�¥�¥ ���>|*�*���,�b����>��{/�]���"�,{ � ���*�*�7�

��// end of if

¦�§*¨>©*¦�ªX«>¬�©<ª*¨>§*¦b­®/¯,¯,¯

°&±(²*³,´�µ(²,³*µ/¶0µ(²,·2µ�³*³*µ�³*µ4¸5´�¹7³*µ9º

»<¼>½@¾*¿,ÀCÀ>¾,Á*Â,ÂCÃ>Ä,Å,Æ�Ç�È�É<¿,Â,Æ4ÊË*Ë�Ë»@¼�½@¾*¿,ÀkÌ<Ä�¿,ÈCÁ>È*È�Í£Î�Ä"Ï,»TÁ�Å*Á�½T¾�ÇQÇ<¾>Ç"ÏTÇ�Ð<Æ/ÑXÊ

Ò É,¿*Â,Æ�Ó@Ä,È�ÇQÐ*Ç>¼,ÇCÔCÐ,Ç,Õ Ò É*¿*Â�Æ"Ó@Ä>È*Ç�Í5Ç*¾>Ç>Ï<Ç,Ð<ÆXÑYÖ¿*×ØÍ ¿*Â�Ù>Ï�»YÆ"Ú(ÍnÑ�ÑXÊ

¿>Ð@Â�Ç*Å,Æ�Í0Û<Ç,Á�È�ÜcÐ*Ç>¼*Ç4Ñ@ÖÝ Ç*¾*Â>ÇÞÊ

Ò É,¿<Â�Æ�Ó@Ä,È�ÇXÆ�Ç�Ï,»XÔQÛ*Ç*Á�ÈbÖÕ>Û*¿*¾>Ç�Í*Í5Æ�Ç"Ï,» Ë Ð�Ç*ß*Ƥà ÔQÛ,Ç,Á,ÈdÑCá�á

Í Ð�Ç,¼,Ç Ë Ç*¾>Ç>Ï<Ç,Ð<Æ Ë À,Ä�Ï�»YÁ�Å�Ç<â�ÄVÍ Æ�Ç�Ï,» Ë Ð*Ç�ß*Æ Ë Ç*¾>Ç>Ï<Ç,Ð<Æ@Ñ�ãTä<Ñ�ÑÊ

Æ�Ç>Ï�»/Ô]Æ>Ç�Ï�» Ë Ð,Ç,ß<Æ7ÖÝ¿>Ð@Â�Ç*Å,Æ�Í5Æ�Ç"Ï,»�ÜcÐ*Ç>¼*Ç4Ñ@Ö

Ý// end of ifå

// end of addæ*æ�æ

ç

è0é(ê,ë*ì�í(ê*ë,ídî&í(ê*ï0í9ë,ë*í9ë,í4ð5ì�ñyë,í9ò

ó@ô�õ@ö*÷,øCø�ö�ù<ú�úCû�ü�ý,þ�ÿ����*÷*ú�þ�������

ó*ô�õYö�÷*ø��ü��óTù,ý,ù�õ@ö,ÿCý�ÿ�@ü��,ÿ� ,÷,ý,ú*þ����kþ��<ý,ü��<ú��*÷*ú�þ����ó7þ������<ø�ÿ�óYþ�÷�ü����÷����5÷<ú���,óYþ�������

þ��*ý,ü�����ÿ ���*÷*ú�þ���,óYþ������*ø�ÿ>óTþ�÷,ü��!�#"�$,ÿ�Tü��<ÿ��<ü,þióTü,ú�÷"õTö>ÿ ����� "��&%�,ü��óYù�ý,ù"õTö>ÿCÿ,ö�ÿ�@ÿ��@þ�'�,ÿ<ù�� � ��ÿ��<þ � ÿ<ö>ÿ�@ÿ��*þ(%�*ÿ*ù�� � �,ÿ��<þ)'�*ÿ*ù�� � ��ÿ��<þ � �*ÿ��*þ(%�*ÿ*ù�� � �,ÿ��<þ � óYý>ÿ��*'�,ÿ*ù��+%ý�ÿ<þ"ô@ý��Cÿ*ö>ÿ�Tÿ��<þ,%-

�����-

.!/10�2�3(4�5+2�6+4�3(7

8�9�:�;=< > ?A@�BAC > D E�?�F�>GF�C >�F�HJIK< H H F�>�L M N > ;=L O�>�P�Q�O�H C O�R�S FB&C > ;=IKT�H U�> V�< > ?&@=> <�HJF�C >GN L F�H O�L W�HJC ;�L�XY:�?�S C IKT

Z�[J\�]=]�\�^ \!_�`�]=a b�ced=c�\�f ^ \�b�b f \hg f \�^ i�f j�^ k l�m i�]=]�\hn�\�o p b�p \�^ \�b

currenttheList

qsr&tJu vJw(xJyJu�vAz {su�|Az v&w

O2O1 O1 O2

}�~����

���J� ��� �=�J�����,����������� ����� �=�K�����G�(��� ��� �=� � � ��� � � ��������� �Y��� �����

� ���J����� ����¡ ¢�¢�£���¤�¥�¦�§�£���¢�¨�K©��J��¦�©J¦�¤J¨�¢�£���¢�¨«ª£ ��¢�¨K¬&­�§�¦�® ¦�¡�§(¯�J���&������£���¤�¥�¦�§�£ ��¢�¨h°=±²ª

®�¦�¡�§�³ ¤�¦�´£���¢�¨#¬A­�§�¦µ° ¤�� ���J±A¯¶�J���&�����·�J­�­���¦�¡�¤*��¢�¸�©��s¨�¹�°�±*ª

º�¦�¨���º�¤®�¦�¡�§�» ¤�¦�¼�¨�³�³ ¤�� ���,¯¶�J���&������½�­���§)©J¡�¥�¦�¸�©��&¨�¹�°�±²ª

®�¦�¡�§�» ¤�¦�¼ ¨�³¤�� ���+¯¶

¾ ��¦ ¿���¡ ¢�¢�¦ £���¤�¥�¦�§�£���¢�¨)® ¡�¨�¤���ºÀ��J¦�º�¡ ¨���­�¤�¦�¤�Á§ ��¦ §���¦£ ��¢�¨�¦ ¡���¢�¸���¤�®�¦���¨·� ¦J¨�º�¡���® ¨�¦�¤

ÃGÄ ÅÇÆ È·É,Ê Å�È�Å�Ë,Ì#Ä Å Í=Î+Ë+Ï1Ð,Å�ÍhÑsÄ Ò�Ì�ÅYÓÔÄ Í#Ð1Å�Ä Ë(Õ ÖA×�Ø�Å�Í�Ù Ú�ÛÜ(Ý�Þ

Ûß+Ý�Ü(à*á=â�ÝYã�ä å

ÛÜ(à*ä æçÞ+è è éµÜ+æ�Ü,ä à�Ü(à

ê ë�ìJí�î�ïî�ð ñ�ò�ó�ô�õ�ï�ò ö�î�÷�ñ�ø�ñ�ò�ó�õ ñ�ù�óûúê�ë�ìJí�î ï)ü ù�î�ý*õ�ý�ýµþ ÿ�ì���ò ï�ñ�ù����ê�ë�ìJí�î ï)ü ù�î�ý*ó�ò��Aù�ü�òµþ���ê�ë�ìJí�î ï)ü ù�î�ý²÷�ò�ñ!þYÿ�ì���ò ï�ñù��ê�ë�ìJí�î ï ì&ù�ù�í�ò�õ�ð*ô�î�ð�ý!þ���ê�ë�ìJí�î ï)ü ù�î�ý*õ�ý�üJõ�ð�ï�ò!þ���ê�ë�ìJí�î ï ì&ù�ù�í�ò�õ�ð*î�÷�ø�ð�ö�î�÷�ñ�þ����ê�ë�ìJí�î ï�ÿ�ì ��òJï�ñ êAó�ò�üJî�ù�ëJ÷hþ����ê�ë�ìJí�î ï)ü ù�î�ý*ô�î�ó ÷�ñ�þ���������

Page 9: 1 2+3+465 7 Dynamische Datenstrukturen · •17.01.01 •1 Dynamische Datenstrukturen" #%$ &(' ! )+*,.-/ ' 0 O2 O2 O3 O4 O1 O2 O3 O4 O5 O6 O7 O2 O1 O O5 4 O3 1 2+3+465 7 8!9;:=

•17.01.01

•9

� ��� � ����������� �! �"��$#&%��� '� ���� �(���)! ����+* ,� �-��� �. �����������0/�� 1������

2�3546�7�898:6<;!=<=�>�7:?�@�>�7�=�A�B:A<C�D�;�A<E<D97�F�26:C:F!C<?�A<=�>�7�=�A�B<A:C�D<;!A:E<DHG2D�E�A<C�8<A<C<I9>�7:?�@�C�I<>!7�=<A9A5J�C�>�7!=<A�K2D�E�A<C�8<A<C<I9>�7�=�AMLE:I�C98:3�D�D<C�?�A�K

2!3:4�6�7�8�>�7<?�@�>�7�=�A�B:A<C�D<;!A:E�DONP>!7:?�@�C�I<>!7�=<AQ;<?<R�>�7!=<ASTGA:J�C<>!7�=�A�U9;<?<R�>!7�=<A�K8:3�D<D�C<?!A�U9;<?<R�>!7�=<A$V 7�=:W5F<2 A�RXN�S:Y

;:?:R!>�7�=�AZV J!C�;<I\[];:?:R!>�7�=�AZV J!C�;<I'V ?<C�^�A K_2!3:4�6�7�8a`�E�7<I9;<I<`!;:?�85CON�STG7�bcNd853!D�D:C�?!Afe U9A:J�C�>�7�=<A$V A<;�7�6gS

Gh853!D<D<C�?!A�U98:3�D�D<C�?�A$V ?�C�^!A K __2!3:4�6�7�8�4�E�E�6<C�;<?T7�=!B�?<>!7�=�A'N�SiGD�C�A�3�D:?i853�D�D<C�?�Aje UiA5J�C�>�7!=<AZV�A<;<7�6

k�k 8�3!D�D<C<?�Ale UTA5J�C<>!7�=�AZV J�C!;:I�K_V9VQV

man�o�p q r�sZtPu�v�w!x�p t�yztPx�t!q�yat�s�vMt�vMt�{+| }�t�v�~}�w!v�t�{

�9t�p r�sZt0���Zt�v�~�}�q w!{Zt!{h��q {Z�&t�v�p ~���x�}M�<��t�{�{+yzt�sZv�t�vMtP��q ��}��| }Mt�v�~�}�w!vMt�{+y�q }O� t�v'o p t�q r�sZt�{h��q ��}�t0~�v�x�t!q }�t!{Z�

����t!q| }�t�v�~�}�w!vMt�{+� ��v�� t�{+{�q r�s�}'o�p t�q r�sZ�<t�q }�q o���q t0o p t!q r<sZt0��q ��}�tyzw�� q � q �:q t!v�t�{��

��������������� �<� ��������������� �5�

�<�����

�$ !¡ ¢�£ ¡  �¤�¥ ¦�§'¨�¡  ª©¬«�­z �«�¨ ®�«Z¯±°�²!«h³ ´� �§�µ�´�²!§M �«¶5¶¸·<¹�º�»M¼:½5¾&¼�»�¿�¼+À:»5Á5¾�¼+»�¿�¼:»M¿5¼+¿M¼�Â5¼+À:»5Á�¾M¼

º<Â�Ã�Ä�»5Å+Á�¾�Æ5¾�»�Å&Ç5¹5»MÈhÅ5¹�º<É�ÊXÀ:»M¿�Ë5¼�È5À5»:ÁM¾�Ä5»5Á5¾�Ì!ͪÀ:»M¿5Ë�¼5È�À:»5Á5¾]Ä5»5Á5¾MÎaÏ<Ð

»�ÑiʬÄ5»5Á5¾�Ì&ÒMÒhÄ5»5Á5¾MÎaϸ½M¼:¾�Â:½�¿ÓÄ�»:ÁM¾�ÎÔ Õ�Æ�Ë�¼MÖMÕMº!¾�ÉZÊ Ï�ÓÀ5»�¿MË5¼�È5À5»:Á�¾5×�¾�¼:½�Æ:¾M¹5½+»5¾M¼�½:Ì]Ò+¿5¼�Ø�À:»M¿5Ë�¼5È�À5»:ÁM¾:×M¾M¼5½5Æ5¾�¹�½�ÊXÄ5»5Á5¾�ÌzÏ�ÓÀ5»�¿MË5¼�È5À5»:Á�¾5×�¾�¼:½�Æ:¾M¹5½+»5¾M¼�½5Î&Ò+¿5¼�Ø�À:»M¿5Ë�¼5È�À5»:ÁM¾:×M¾M¼5½5Æ5¾�¹�½�ÊXÄ5»5Á5¾MÎaÏ�Ó

Ñ�¹5½iÊÙÓ »5¾�¼:½�ÌÔ »:Á5×�¿�À:»5Á5¾Ê�Ï<ÓP»5¾M¼5½:Ì!Ô ÆMÈ�Ç:Æ�¿5ÅM¼�Ê Ï+Ï<л�¾M¼5½5ÎÔ ÆMÈ�È�Ê�»5¾M¼5½:Ì�Ô Ú�¼<¾�ÛMÂ:½�½�¼�¿<¾�Ê�Ï�Ï<ÓÜ

Ü

º<Â�Ã�Ä�»5ÅhÁM¾�Æ5¾�»�Å&Ç:¹5»�ÈhÅ5¹�º<É�Ê�À:»�¿�Ë5¼�È5À5»:Á�¾&Ä5»5Á5¾�Ì!ÍÝÀ:»�¿5Ë�¼5È�À:»5Á5¾]Ä5»5Á5¾MÎaÏ<Ð

À:»5Á5¾�×�¾�¼:½�Æ5¾�¹�½�»:¾�¼:½5Ì&ÒhÄ5»�Á�¾5Ì�Ô Ä�»:Á�¾:×�¾M¼5½5Æ5¾M¹5½ Ê�Ï:ÓÀ:»5Á5¾�×�¾�¼:½�Æ5¾�¹�½�»:¾�¼:½�Î�ÒhÄ5»�Á�¾�ÎÔ Ä�»:Á�¾:×�¾M¼5½5Æ5¾M¹5½ Ê�Ï:ÓØ�Þ:»5Ä�¼gÊ »5¾�¼:½5ÌÔ Þ<Æ5Á�ß<¼5à:¾ Ê Ï5Ï+Ð0»:¾�¼:½�Î�Ô Æ�È�È�Ê�»:¾�¼:½�ÌÔ ¿5¼�à<¾�Ê�Ï&Ï�Ó Ü

Ü

á�â�ã5âOä�å æ9ç�è â�é<ê�âMë ê5ì í:î ï5ð î ñ�è ò<ó�ô

õö�÷�öø�ù$ú û ü ú ý!þ�ÿ���������� ��� ú �þ����

� ��� ��� � ��������� ���

��� �� ���!���� ���

"$#���� � ����� ��� �%�

&$����� '��

"$� � �)(���� ���� *,+�- ��*.�)��� � ��� /���01���

243�5 6 7 8�9�6 :�;%<)=1;�>�6 ? 8�@ A)? 5 6

B C D�E F�C G�E H�I J C B C D�E F�C G�E

Wir haben gelernt:

K.L�M$N.O$P Q$R4OTS�U�VWL�X V$P R4Y�Z�L�V�[�X \)]%L�V

^,R_V$`aZbRcQ$O$V$deS�U�V�`aU�f�f$L�g ]bS�L�M�haL�]�]%L�]�L�VW[aX \)]�L�V

ijU�M�k$ObV$`mlnR4Y�Z�]�L�X g Lnd$L�daL�Vbo$QbL�M�p�L�X Z$ObVbdaL�V

[aX \)]�L�V$krq ]%L�M�R4]%U�M%L�V

s.t�uwvyx

z�{c|$}�~n�)� �b�T� |$�b�a�c}�~��$�%�4� ~�j�c��~��b�)����|$�4�%|$��~���� �b���

�$�1� ���������������� ����� ����� ����� �����

�c��� � � �����r� ����� ���.�

�c���1� �1��� ��� ����� � ���� 

¡�¢ £b¤n¥a¢ ¦)§�¤,¢ ¦)§�¤�¢ £�¦)¨$¤�©�¢ ¤�ª ª ¤�«�¬�­cª ª4¤�¢ £�¤�¦w®�­�¯�°±¤�¦

¯b¦�²±³´�µ ¶�·�¸�¹ º�»�¸�¼b½$¼�µ ¶�µ ¾1¼�¹ ¿ À�Á�Â

Page 10: 1 2+3+465 7 Dynamische Datenstrukturen · •17.01.01 •1 Dynamische Datenstrukturen" #%$ &(' ! )+*,.-/ ' 0 O2 O2 O3 O4 O1 O2 O3 O4 O5 O6 O7 O2 O1 O O5 4 O3 1 2+3+465 7 8!9;:=

•17.01.01

•10

ÃTÄ�ÅeÆ,Ç�ÈÉÃmÆjÊÌËÍÈ

Î�ÏcÐ$ÑÓÒ

O1

O2 O3

O4 O5 O6O7

Ô4ÕrÖ ×ÙØ�Ú Û�Ü�×O1

Ý_Þrß àÙáaâ ã�ä�àO2

å4ærç èêé�ë ì�í�èO3

î�ï�ð ðñî�ï�ð ðO4

ò�ó�ô ôñò�ó�ô ôO5

õ�ö�÷ ÷ñõ�ö�÷ ÷O6

ø�ù�ú úñø�ù�ú úO7

RootûÌü�ýÌþ.ÿ�� ûmþ������

���� ��� ��������� �������� �� ����������� �"!� �������� �#��� $��%!� �������� �'&(�)���*+!

� � � � � � � , � � � � � � � � � � � � - � � � � � � � � - � � � � � � � & . ���*�( �"/0����1�2�� ��43'����1�2�� ��%!��� $�435�%!&(�)���*637&8!

9

� �������� �:,;.7���*�( �<,= ��� �%-> ���� �%-? ���� �7.2! 9

9

rekursive Definition