<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.stageing.freitagsrunde.org//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=TomyLobo</id>
	<title>FreitagsrundenWiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.stageing.freitagsrunde.org//api.php?action=feedcontributions&amp;feedformat=atom&amp;user=TomyLobo"/>
	<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//Spezial:Beitr%C3%A4ge/TomyLobo"/>
	<updated>2026-10-29T16:34:54Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.45.6</generator>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Softwaretechnik&amp;diff=4633</id>
		<title>Softwaretechnik</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Softwaretechnik&amp;diff=4633"/>
		<updated>2007-10-15T04:22:18Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: /* Tipps und nützliche Infos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div id=&amp;quot;protokolle&amp;quot; style=&amp;quot;float:right; width:20%; margin:10px; padding:10px; background-color:#efefef;&amp;quot;&amp;gt;&lt;br /&gt;
=== Klausuren ===&lt;br /&gt;
WS 2004/2005&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/klausur-WS0405.ps Klausur]&lt;br /&gt;
&lt;br /&gt;
SS 2004&lt;br /&gt;
* [http://docs.freitagsrunde.org/klausuren/Softwaretechnik/klausur-SS04.ps Musterlösung]&lt;br /&gt;
&lt;br /&gt;
WS 2003/2004&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/klausur-WS0304.ps Klausur]&lt;br /&gt;
&lt;br /&gt;
SS 2003&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/klausur-SS03.ps Klausur]&lt;br /&gt;
&lt;br /&gt;
WS 2002/2003&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/klausur-WS0203.ps Klausur]&lt;br /&gt;
&lt;br /&gt;
SS 2002&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/ss2002.ps.gz Klausur]&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/ss02_musterloesung.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
SS 2001&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/ss2001.ps.gz Klausur]&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/SWT-Basis_SS2001_Musterloesung.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
WS 2000/2001&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/ws0001_musterloesung.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
SS 2000&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/SWT-Basis_SS2001_Musterloesung.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
WS 1999/2000&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/ws9900_musterloesung.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
SS 1999&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/SWT-Basis_SS1999_Musterloesung.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
WS 1998/1999&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/ws9899.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
SS 1998&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/ss98_musterloesung.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
WS 1997/1998&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/ws9798_musterloesung.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
SS 1997&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/ss1997.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
WS 1996/1997&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/ws9697_musterloesung.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
SS 1996&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/ss96.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
WS 1995/1996&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/ws9596_musterloesung.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Softwaretechnik&#039;&#039;&#039; ist eine [[Basisveranstaltung]] im Fachgebiet SWT (Studiengebiet SSG) im [[Hauptstudium|Informatik-Hauptstudium]].&lt;br /&gt;
&lt;br /&gt;
== Inhalt ==&lt;br /&gt;
In der Lehrveranstaltung werden Methoden und Techniken zur Softwareentwicklung behandelt, die die Grundlage für weitere Vertiefung in das Studiengebiet Softwaretechnik und Systemgestaltung bilden. Schwerpunkte sind: Anforderungsermittlung, Software-Entwurf und -Konstruktion, Spezifikationstechniken, Qualitätssicherung und Software-Architektur. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tipps und nützliche Infos ==&lt;br /&gt;
&lt;br /&gt;
Die Vorlesung gliedert sich in drei Teile: Fusion, Object-Z und Statecharts. In jedem Bereich gibt es eine Übungsaufgabe, wobei die Fusion-Aufgabe 50% zählt (und äußerst umfangreich und schreibintensiv ist)&lt;br /&gt;
&lt;br /&gt;
Literatur:&lt;br /&gt;
unwichtig, gibt diverse Unterlagen zu den einzelnen Bereichen&lt;br /&gt;
&lt;br /&gt;
Zitat von der [[MPGI 3 (Bachelor)|MPGI3]]-Seite:&lt;br /&gt;
&lt;br /&gt;
Für Diplomstudiengänge ([[Lehrveranstaltungen Informatik Diplom (StuPO90)|Informatik]], TI, TWM, Wi-Ing, ITM u.A.) [ist MPGI 3] auch als [[Basisveranstaltung]] [[Softwaretechnik]] anrechenbar.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.swt.cs.tu-berlin.de/lehre/swt/index.html/ Softwaretechnik (jeweils aktuelles Semester)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Persönliche Kommentare ==&lt;br /&gt;
: (Nicht unterschriebene Kommentare werden gelöscht!)&lt;br /&gt;
&lt;br /&gt;
* WS05/06: Im Informatik-Studium muß man viel Unsinn machen - aber dieser Kurs übertrifft nochmal alles. Die Krönung erwartet einen mitunter bei der Klausur. Hier muß man in sich windeseile in die Logik Anderer reindenken, um teilweise recht komplizierte Spezifikationen vornehmen zu können. Ich bin von diesem Kurs maßlos enttäuscht. Was mich am meisten stört, ist die unselige Zettelwirtschaft. Anstatt sich an einem Lehrbuch zu orientieren, hantiert man mit hunderten von Zettel rum. Unmöglich. Und eines ist klar: Wenn auf diese Weise in der Realität Software entwicklelt wird, dann verzichte ich freiwillig auf jede weitere Flugreise...TimoS.&lt;br /&gt;
&lt;br /&gt;
* WS04/05 (Veranstalter: Stephan Herrmann): Man sollte es sich wirklich mehrfach ueberlegen, ob man diese Veranstaltung belegt. Positiv ist lediglich, dass es ein A-Kurs ist und dass bei der Klausur 35% zum Bestehen reichen. Alles andere ist sehr negativ. Die Tutoren wirken extrem unmotiviert und korrigieren ziemlich willkuerlich.&lt;br /&gt;
&lt;br /&gt;
Die Vorlesung muss man nicht besuchen. Der Dozent labert ewig lange bei voellig unwichtigen Sachen rum und zieht dann die interessanten 10 Folien am Schluss in maximal 5 Minuten durch...&lt;br /&gt;
&lt;br /&gt;
Totaler Mist. NICHT BELEGEN! FelixB&lt;br /&gt;
&lt;br /&gt;
* Völlig sinnloser Spezifikationsmarathon. Nur belegen, wenn man Vertiefungsveranstaltungen bei SWT besuchen will/muss. Wenn schon, dann im SS besuchen, wenn Jähnichen die VL macht. --[[Benutzer:Felix|Felix]] 12:14, 12. Aug 2005 (CEST)&lt;br /&gt;
&lt;br /&gt;
* Hmm - ich fand die Veranstaltung ehrlich gesagt nicht ganz so schlecht. Vielleicht sollte ich dazu sagen, dass ich seit 5 Jahren neben dem Studium in einer Firma arbeite, in der viel und professionell Software entwickelt wird. Natuerlich sind die Beispiele der Veranstaltung extrem an den Haaren herbeigezogen (wer spezifiziert schon eine Autowerkstatt komplett durch) - aber man kann dennoch viel lernen. Und sei es die Einsicht, dass man nicht alles spezifizieren kann und muss [Vor allem nicht mit den gelehrten Methoden...]. Jedenfalls ist das, was hier einige als sinnloses Geschwafel abtun, in der Praxis ziemlich wichtig. Es geht einfach nichts ohne eine (vernünftige) Spezifikation und Qualitätssicherung. Das muss man nicht toll finden, aber es is leider so, dass man ohne Pflichtenhefte und Projektmanagement verloren hat. Das es kein Lehrbuch gibt finde ich hervorragend, besser als wieder 30 Euro für ein Buch ausgeben zu müssen, von dem dann nur 20% benutzt werden. Ausserdem werden die Aufgaben immer wieder verändert und angepasst. Mein Tutor war Rodger, ich muss sagen das Tut war einfach nur Klasse! Die Vorlesung habe ich maximal dreimal besucht, Dozent war Kammüller.  --[[Benutzer:Mutax|florian]] 14:02, 19. Feb. 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Lehrveranstaltungen]]&lt;br /&gt;
[[Kategorie:Fakultäts-ABC]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Softwaretechnik&amp;diff=4632</id>
		<title>Softwaretechnik</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Softwaretechnik&amp;diff=4632"/>
		<updated>2007-10-15T04:21:37Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: /* Tipps und nützliche Infos */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div id=&amp;quot;protokolle&amp;quot; style=&amp;quot;float:right; width:20%; margin:10px; padding:10px; background-color:#efefef;&amp;quot;&amp;gt;&lt;br /&gt;
=== Klausuren ===&lt;br /&gt;
WS 2004/2005&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/klausur-WS0405.ps Klausur]&lt;br /&gt;
&lt;br /&gt;
SS 2004&lt;br /&gt;
* [http://docs.freitagsrunde.org/klausuren/Softwaretechnik/klausur-SS04.ps Musterlösung]&lt;br /&gt;
&lt;br /&gt;
WS 2003/2004&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/klausur-WS0304.ps Klausur]&lt;br /&gt;
&lt;br /&gt;
SS 2003&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/klausur-SS03.ps Klausur]&lt;br /&gt;
&lt;br /&gt;
WS 2002/2003&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/klausur-WS0203.ps Klausur]&lt;br /&gt;
&lt;br /&gt;
SS 2002&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/ss2002.ps.gz Klausur]&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/ss02_musterloesung.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
SS 2001&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/ss2001.ps.gz Klausur]&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/SWT-Basis_SS2001_Musterloesung.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
WS 2000/2001&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/ws0001_musterloesung.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
SS 2000&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/SWT-Basis_SS2001_Musterloesung.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
WS 1999/2000&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/ws9900_musterloesung.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
SS 1999&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/SWT-Basis_SS1999_Musterloesung.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
WS 1998/1999&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/ws9899.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
SS 1998&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/ss98_musterloesung.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
WS 1997/1998&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/ws9798_musterloesung.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
SS 1997&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/ss1997.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
WS 1996/1997&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/ws9697_musterloesung.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
SS 1996&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/ss96.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
WS 1995/1996&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/ws9596_musterloesung.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Softwaretechnik&#039;&#039;&#039; ist eine [[Basisveranstaltung]] im Fachgebiet SWT (Studiengebiet SSG) im [[Hauptstudium|Informatik-Hauptstudium]].&lt;br /&gt;
&lt;br /&gt;
== Inhalt ==&lt;br /&gt;
In der Lehrveranstaltung werden Methoden und Techniken zur Softwareentwicklung behandelt, die die Grundlage für weitere Vertiefung in das Studiengebiet Softwaretechnik und Systemgestaltung bilden. Schwerpunkte sind: Anforderungsermittlung, Software-Entwurf und -Konstruktion, Spezifikationstechniken, Qualitätssicherung und Software-Architektur. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tipps und nützliche Infos ==&lt;br /&gt;
&lt;br /&gt;
Die Vorlesung gliedert sich in drei Teile: Fusion, Object-Z und Statecharts. In jedem Bereich gibt es eine Uebungsaufgabe, wobei die Fusion-Aufgabe 50% zaehlt (und äußerst umfangreich und schreibintensiv ist)&lt;br /&gt;
&lt;br /&gt;
Literatur:&lt;br /&gt;
unwichtig, gibt diverse Unterlagen zu den einzelnen Bereichen&lt;br /&gt;
&lt;br /&gt;
Zitat von der [[MPGI 3 (Bachelor)|MPGI3]]-Seite:&lt;br /&gt;
&lt;br /&gt;
Für Diplomstudiengänge ([[Lehrveranstaltungen Informatik Diplom (StuPO90)|Informatik]], TI, TWM, Wi-Ing, ITM u.A.) [ist MPGI 3] auch als [[Basisveranstaltung]] [[Softwaretechnik]] anrechenbar.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.swt.cs.tu-berlin.de/lehre/swt/index.html/ Softwaretechnik (jeweils aktuelles Semester)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Persönliche Kommentare ==&lt;br /&gt;
: (Nicht unterschriebene Kommentare werden gelöscht!)&lt;br /&gt;
&lt;br /&gt;
* WS05/06: Im Informatik-Studium muß man viel Unsinn machen - aber dieser Kurs übertrifft nochmal alles. Die Krönung erwartet einen mitunter bei der Klausur. Hier muß man in sich windeseile in die Logik Anderer reindenken, um teilweise recht komplizierte Spezifikationen vornehmen zu können. Ich bin von diesem Kurs maßlos enttäuscht. Was mich am meisten stört, ist die unselige Zettelwirtschaft. Anstatt sich an einem Lehrbuch zu orientieren, hantiert man mit hunderten von Zettel rum. Unmöglich. Und eines ist klar: Wenn auf diese Weise in der Realität Software entwicklelt wird, dann verzichte ich freiwillig auf jede weitere Flugreise...TimoS.&lt;br /&gt;
&lt;br /&gt;
* WS04/05 (Veranstalter: Stephan Herrmann): Man sollte es sich wirklich mehrfach ueberlegen, ob man diese Veranstaltung belegt. Positiv ist lediglich, dass es ein A-Kurs ist und dass bei der Klausur 35% zum Bestehen reichen. Alles andere ist sehr negativ. Die Tutoren wirken extrem unmotiviert und korrigieren ziemlich willkuerlich.&lt;br /&gt;
&lt;br /&gt;
Die Vorlesung muss man nicht besuchen. Der Dozent labert ewig lange bei voellig unwichtigen Sachen rum und zieht dann die interessanten 10 Folien am Schluss in maximal 5 Minuten durch...&lt;br /&gt;
&lt;br /&gt;
Totaler Mist. NICHT BELEGEN! FelixB&lt;br /&gt;
&lt;br /&gt;
* Völlig sinnloser Spezifikationsmarathon. Nur belegen, wenn man Vertiefungsveranstaltungen bei SWT besuchen will/muss. Wenn schon, dann im SS besuchen, wenn Jähnichen die VL macht. --[[Benutzer:Felix|Felix]] 12:14, 12. Aug 2005 (CEST)&lt;br /&gt;
&lt;br /&gt;
* Hmm - ich fand die Veranstaltung ehrlich gesagt nicht ganz so schlecht. Vielleicht sollte ich dazu sagen, dass ich seit 5 Jahren neben dem Studium in einer Firma arbeite, in der viel und professionell Software entwickelt wird. Natuerlich sind die Beispiele der Veranstaltung extrem an den Haaren herbeigezogen (wer spezifiziert schon eine Autowerkstatt komplett durch) - aber man kann dennoch viel lernen. Und sei es die Einsicht, dass man nicht alles spezifizieren kann und muss [Vor allem nicht mit den gelehrten Methoden...]. Jedenfalls ist das, was hier einige als sinnloses Geschwafel abtun, in der Praxis ziemlich wichtig. Es geht einfach nichts ohne eine (vernünftige) Spezifikation und Qualitätssicherung. Das muss man nicht toll finden, aber es is leider so, dass man ohne Pflichtenhefte und Projektmanagement verloren hat. Das es kein Lehrbuch gibt finde ich hervorragend, besser als wieder 30 Euro für ein Buch ausgeben zu müssen, von dem dann nur 20% benutzt werden. Ausserdem werden die Aufgaben immer wieder verändert und angepasst. Mein Tutor war Rodger, ich muss sagen das Tut war einfach nur Klasse! Die Vorlesung habe ich maximal dreimal besucht, Dozent war Kammüller.  --[[Benutzer:Mutax|florian]] 14:02, 19. Feb. 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Lehrveranstaltungen]]&lt;br /&gt;
[[Kategorie:Fakultäts-ABC]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Softwaretechnik&amp;diff=4631</id>
		<title>Softwaretechnik</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Softwaretechnik&amp;diff=4631"/>
		<updated>2007-10-15T04:20:34Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: /* Tipps und nützliche Infos */ kann das jemand noch irgendwo einordnen bitte?&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div id=&amp;quot;protokolle&amp;quot; style=&amp;quot;float:right; width:20%; margin:10px; padding:10px; background-color:#efefef;&amp;quot;&amp;gt;&lt;br /&gt;
=== Klausuren ===&lt;br /&gt;
WS 2004/2005&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/klausur-WS0405.ps Klausur]&lt;br /&gt;
&lt;br /&gt;
SS 2004&lt;br /&gt;
* [http://docs.freitagsrunde.org/klausuren/Softwaretechnik/klausur-SS04.ps Musterlösung]&lt;br /&gt;
&lt;br /&gt;
WS 2003/2004&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/klausur-WS0304.ps Klausur]&lt;br /&gt;
&lt;br /&gt;
SS 2003&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/klausur-SS03.ps Klausur]&lt;br /&gt;
&lt;br /&gt;
WS 2002/2003&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/klausur-WS0203.ps Klausur]&lt;br /&gt;
&lt;br /&gt;
SS 2002&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/ss2002.ps.gz Klausur]&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/ss02_musterloesung.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
SS 2001&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/ss2001.ps.gz Klausur]&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/SWT-Basis_SS2001_Musterloesung.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
WS 2000/2001&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/ws0001_musterloesung.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
SS 2000&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/SWT-Basis_SS2001_Musterloesung.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
WS 1999/2000&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/ws9900_musterloesung.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
SS 1999&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/SWT-Basis_SS1999_Musterloesung.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
WS 1998/1999&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/ws9899.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
SS 1998&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/ss98_musterloesung.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
WS 1997/1998&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/ws9798_musterloesung.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
SS 1997&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/ss1997.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
WS 1996/1997&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/ws9697_musterloesung.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
SS 1996&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/ss96.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
WS 1995/1996&lt;br /&gt;
* [http://docs.freitagsrunde.org/Klausuren/Softwaretechnik/ws9596_musterloesung.ps.gz Musterlösung]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Softwaretechnik&#039;&#039;&#039; ist eine [[Basisveranstaltung]] im Fachgebiet SWT (Studiengebiet SSG) im [[Hauptstudium|Informatik-Hauptstudium]].&lt;br /&gt;
&lt;br /&gt;
== Inhalt ==&lt;br /&gt;
In der Lehrveranstaltung werden Methoden und Techniken zur Softwareentwicklung behandelt, die die Grundlage für weitere Vertiefung in das Studiengebiet Softwaretechnik und Systemgestaltung bilden. Schwerpunkte sind: Anforderungsermittlung, Software-Entwurf und -Konstruktion, Spezifikationstechniken, Qualitätssicherung und Software-Architektur. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tipps und nützliche Infos ==&lt;br /&gt;
&lt;br /&gt;
Die Vorlesung gliedert sich in drei Teile: Fusion, Object-Z und Statecharts. In jedem Bereich gibt es eine Uebungsaufgabe, wobei die Fusion-Aufgabe 50% zaehlt (und äußerst umfangreich und schreibintensiv ist)&lt;br /&gt;
&lt;br /&gt;
Literatur:&lt;br /&gt;
unwichtig, gibt diverse Unterlagen zu den einzelnen Bereichen&lt;br /&gt;
&lt;br /&gt;
Zitat von der [[MPGI 3 (Bachelor)|MPGI3]]-Seite:&lt;br /&gt;
&lt;br /&gt;
Für Diplomstudiengänge ([[Lehrveranstaltungen Informatik Diplom (StuPO90)|Informatik]], TI, TWM, Wi-Ing, ITM u.A.) auch als [[Basisveranstaltung]] [[Softwaretechnik]] anrechenbar.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.swt.cs.tu-berlin.de/lehre/swt/index.html/ Softwaretechnik (jeweils aktuelles Semester)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Persönliche Kommentare ==&lt;br /&gt;
: (Nicht unterschriebene Kommentare werden gelöscht!)&lt;br /&gt;
&lt;br /&gt;
* WS05/06: Im Informatik-Studium muß man viel Unsinn machen - aber dieser Kurs übertrifft nochmal alles. Die Krönung erwartet einen mitunter bei der Klausur. Hier muß man in sich windeseile in die Logik Anderer reindenken, um teilweise recht komplizierte Spezifikationen vornehmen zu können. Ich bin von diesem Kurs maßlos enttäuscht. Was mich am meisten stört, ist die unselige Zettelwirtschaft. Anstatt sich an einem Lehrbuch zu orientieren, hantiert man mit hunderten von Zettel rum. Unmöglich. Und eines ist klar: Wenn auf diese Weise in der Realität Software entwicklelt wird, dann verzichte ich freiwillig auf jede weitere Flugreise...TimoS.&lt;br /&gt;
&lt;br /&gt;
* WS04/05 (Veranstalter: Stephan Herrmann): Man sollte es sich wirklich mehrfach ueberlegen, ob man diese Veranstaltung belegt. Positiv ist lediglich, dass es ein A-Kurs ist und dass bei der Klausur 35% zum Bestehen reichen. Alles andere ist sehr negativ. Die Tutoren wirken extrem unmotiviert und korrigieren ziemlich willkuerlich.&lt;br /&gt;
&lt;br /&gt;
Die Vorlesung muss man nicht besuchen. Der Dozent labert ewig lange bei voellig unwichtigen Sachen rum und zieht dann die interessanten 10 Folien am Schluss in maximal 5 Minuten durch...&lt;br /&gt;
&lt;br /&gt;
Totaler Mist. NICHT BELEGEN! FelixB&lt;br /&gt;
&lt;br /&gt;
* Völlig sinnloser Spezifikationsmarathon. Nur belegen, wenn man Vertiefungsveranstaltungen bei SWT besuchen will/muss. Wenn schon, dann im SS besuchen, wenn Jähnichen die VL macht. --[[Benutzer:Felix|Felix]] 12:14, 12. Aug 2005 (CEST)&lt;br /&gt;
&lt;br /&gt;
* Hmm - ich fand die Veranstaltung ehrlich gesagt nicht ganz so schlecht. Vielleicht sollte ich dazu sagen, dass ich seit 5 Jahren neben dem Studium in einer Firma arbeite, in der viel und professionell Software entwickelt wird. Natuerlich sind die Beispiele der Veranstaltung extrem an den Haaren herbeigezogen (wer spezifiziert schon eine Autowerkstatt komplett durch) - aber man kann dennoch viel lernen. Und sei es die Einsicht, dass man nicht alles spezifizieren kann und muss [Vor allem nicht mit den gelehrten Methoden...]. Jedenfalls ist das, was hier einige als sinnloses Geschwafel abtun, in der Praxis ziemlich wichtig. Es geht einfach nichts ohne eine (vernünftige) Spezifikation und Qualitätssicherung. Das muss man nicht toll finden, aber es is leider so, dass man ohne Pflichtenhefte und Projektmanagement verloren hat. Das es kein Lehrbuch gibt finde ich hervorragend, besser als wieder 30 Euro für ein Buch ausgeben zu müssen, von dem dann nur 20% benutzt werden. Ausserdem werden die Aufgaben immer wieder verändert und angepasst. Mein Tutor war Rodger, ich muss sagen das Tut war einfach nur Klasse! Die Vorlesung habe ich maximal dreimal besucht, Dozent war Kammüller.  --[[Benutzer:Mutax|florian]] 14:02, 19. Feb. 2007 (CET)&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Lehrveranstaltungen]]&lt;br /&gt;
[[Kategorie:Fakultäts-ABC]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10215</id>
		<title>Informatik 3/Gedächtnisprotokoll Klausur SS07</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10215"/>
		<updated>2007-08-02T10:16:29Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: /* Aufgabe 1: Multiple Choice (7 Punkte) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Aufgabe 1: Multiple Choice (7 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Kreuzen Sie jeweils wahr bzw. falsch an:&lt;br /&gt;
* ..&lt;br /&gt;
* Ein zusammenhängender, ungerichteter Graph mit |V| Knoten hat immer |V| * (|V| - 1) / 2 Kanten. &lt;br /&gt;
* Traversierung mit Breitensuche erzeugt einen aufspannenden Baum.&lt;br /&gt;
* Die Höhe eines binären Suchbaumes ist immer um 1 größer, als das Maximum der Höhen seiner Teilbäume.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Backtrackingalgorithmus finden der dieses löst.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Greedy-algorithmus finden der dieses löst.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Worst Case Aufwand von&lt;br /&gt;
* Wert in eine Hashliste mit Separate Chaining einfuegen&lt;br /&gt;
* Einen Wert in einer Skipliste finden&lt;br /&gt;
* Rotieren in einem AVL-Baum&lt;br /&gt;
* Tiefensuch&lt;br /&gt;
* Kruskal&lt;br /&gt;
* Edmonds Karp Alg&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 2: HashTables (7 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Hashtabelle der Größe 4.&lt;br /&gt;
*Hashfunktion: h(k) = k mod 4&lt;br /&gt;
*Kollisonsauflösung&amp;quot;double hashing&amp;quot; a(k) = k+2&lt;br /&gt;
&lt;br /&gt;
Vier Werte mit Schlüsseln einfügen und Kollisionen zählen.&lt;br /&gt;
&lt;br /&gt;
(A,5) (B,11) (C,9) (D,14)&lt;br /&gt;
&lt;br /&gt;
Lösung:&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1,0&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ist die Anzahl der Kollisionen bei double hashing abhängig von der Reihenfolge in der die Elemente eingefügt werden? Begründung, ggf. Beispiel.&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 3: Suchbäume (11 Punkte) ==&lt;br /&gt;
&#039;&#039;&#039;AVL-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen von 3 in den folgenden AVL-Baum:&lt;br /&gt;
[[Bild:Info3-ss2007-3-avltree.png]]&lt;br /&gt;
&lt;br /&gt;
*Löschen von 10 aus dem folgenden AVL-Baum:&lt;br /&gt;
[[Bild:Info3-ss2007-3-avltree.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rot/Schwarz-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen von &#039;9&#039; in den folgenden Rot/Schwarz-Baum:&lt;br /&gt;
[[Bild:Info3-ss2007-3-rbtree.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Java-Programm schreiben für Höhenberechnung eines Rot-Schwarz-Baumes: int getBlackHeight(Node root)&lt;br /&gt;
** Rot-Schwarz-Baum als gültig vorausgesetzt.&lt;br /&gt;
** Vorgegebene Implementation:&lt;br /&gt;
*** boolean isRed(Node node);&lt;br /&gt;
*** boolean isBlack(Node node);&lt;br /&gt;
*** class Node{ int color; Node left; Node right; }&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;B-Baum&#039;&#039;&#039;&lt;br /&gt;
* Element in B-Baum einfügen.&lt;br /&gt;
[[Bild:Info3-ss2007-3-btree.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 4: Graphen (10 Punkte) ==&lt;br /&gt;
a) Baue eine Adjazenzmatrix zu folgendem Graphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4a.png]]&lt;br /&gt;
&lt;br /&gt;
b) Dijkstra auf folgendem Graph ausführen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4b.png]]&lt;br /&gt;
&lt;br /&gt;
c) Definiere (formal oder als Text) den Begriff &amp;quot;aufspannender Baum&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
d) Führe union(D,F) auf folgender, als Wald realisierter disjunkter Menge aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4d.png]]&lt;br /&gt;
&lt;br /&gt;
e) Erstelle den Restflussgraphen zu folgendem Flussgraphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4e.png]]&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 5: Übungsorganisation (4 Punkte) ==&lt;br /&gt;
Es herrscht grosser Andrang bei der Sprechstunde. Keiner der wartenden Studierenden erinnert sich an die genaue Ankunftsreihenfolge. Einige erinnern sich jedoch noch an die Leute die bereits warteten. Es soll eine ungefähre Ankunftsreihenfolge bestimmt werden.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Name      || wartete bereits&lt;br /&gt;
|-&lt;br /&gt;
| Annett    || Daniel, Edeltraut&lt;br /&gt;
|-&lt;br /&gt;
| Bert      || Anett, Daniel, Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Claudia   || -&lt;br /&gt;
|-&lt;br /&gt;
| Daniel    || Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Edeltraut || Claudia&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
a) Erstelle einen Graph aus den Erinnerungen der wartenden Studierenden.&lt;br /&gt;
&lt;br /&gt;
b) Nun soll die ungefähre Reihenfolge der Studierenden berechnet werden.&lt;br /&gt;
&lt;br /&gt;
Algorithmus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ablauf:&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 6: Dynamisches Programmieren (5 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-6.png]]&lt;br /&gt;
&amp;lt;!-- Das Bild wurde gerendert mit freundlicher, allerdings unwissender, Unterstützung der deutschen Wikipedia.&lt;br /&gt;
Hier der TeX-Quellcode des obenstehenden Bildes:&lt;br /&gt;
&amp;lt;math&amp;gt;g(m, n) = \left\lbrace\begin{matrix} 42 &amp;amp; m = 0 \or n=0 \\ g(m-1, n-1) + g(m, n-1) &amp;amp; m &amp;gt; 0 \and n &amp;gt; 0 \end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine nicht-rekursive Java-Methode an, die g(m,n) für m, n e N berechnet. Die Methode soll dafür polynomielle Laufzeit benötigen&lt;br /&gt;
&lt;br /&gt;
b) Kleinste worst-case-Laufzeitklasse angeben:&lt;br /&gt;
&lt;br /&gt;
O( .... )&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 7: Geld wechseln (6 Punkte) ==&lt;br /&gt;
Gegeben ist ein Betrag, welcher durch möglichst wenige Geldstücke der Grössen { 200, 100, 50, 20, 10, 5, 2, 1 } dargestellt werden werden soll.&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine günstige Kodierung für die Geldstücke an&lt;br /&gt;
&lt;br /&gt;
b) Geben Sie eine Zielfunktion und eine Optimierungsrichtung (max/min) an.&lt;br /&gt;
&lt;br /&gt;
c) Geben Sie ein Greedy-Verfahren zur Lösung des Optimierungsproblems an (als Pseudocode oder verbal).&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
[[Informatik 4 (StuPO90)/Gedächtnisprotokoll Klausur SoSe 2007]]&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10214</id>
		<title>Informatik 3/Gedächtnisprotokoll Klausur SS07</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10214"/>
		<updated>2007-08-02T09:49:29Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: /* Aufgabe 1: Multiple Choice (7 Punkte) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Aufgabe 1: Multiple Choice (7 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Kreuzen Sie jeweils wahr bzw. falsch an:&lt;br /&gt;
* ..&lt;br /&gt;
* Ein zusammenhängender, ungerichteter Graph mit |V| Knoten hat immer |V| * (|V| - 1) / 2 Kanten. &lt;br /&gt;
* Traversierung mit Breitensuche erzeugt einen aufspannenden Baum.&lt;br /&gt;
* Die Höhe eines binären Suchbaumes ist immer um 1 größer, als das Maximum der Höhen seiner Teilbäume.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Backtrackingalgorithmus finden der dieses löst.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Greedy-algorithmus finden der dieses löst.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Worst Case Aufwand von&lt;br /&gt;
* Hash einfuegen&lt;br /&gt;
* Einen Wert in einer Skipliste finden&lt;br /&gt;
* Rotieren in einem AVL-Baum&lt;br /&gt;
* Tiefensuch&lt;br /&gt;
* Kruskal&lt;br /&gt;
* Edmonds Karp Alg&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 2: HashTables (7 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Hashtabelle der Größe 4.&lt;br /&gt;
*Hashfunktion: h(k) = k mod 4&lt;br /&gt;
*Kollisonsauflösung&amp;quot;double hashing&amp;quot; a(k) = k+2&lt;br /&gt;
&lt;br /&gt;
Vier Werte mit Schlüsseln einfügen und Kollisionen zählen.&lt;br /&gt;
&lt;br /&gt;
(A,5) (B,11) (C,9) (D,14)&lt;br /&gt;
&lt;br /&gt;
Lösung:&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1,0&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ist die Anzahl der Kollisionen bei double hashing abhängig von der Reihenfolge in der die Elemente eingefügt werden? Begründung, ggf. Beispiel.&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 3: Suchbäume (11 Punkte) ==&lt;br /&gt;
&#039;&#039;&#039;AVL-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen von 3 in den folgenden AVL-Baum:&lt;br /&gt;
[[Bild:Info3-ss2007-3-avltree.png]]&lt;br /&gt;
&lt;br /&gt;
*Löschen von 10 aus dem folgenden AVL-Baum:&lt;br /&gt;
[[Bild:Info3-ss2007-3-avltree.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rot/Schwarz-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen von &#039;9&#039; in den folgenden Rot/Schwarz-Baum:&lt;br /&gt;
[[Bild:Info3-ss2007-3-rbtree.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Java-Programm schreiben für Höhenberechnung eines Rot-Schwarz-Baumes: int getBlackHeight(Node root)&lt;br /&gt;
** Rot-Schwarz-Baum als gültig vorausgesetzt.&lt;br /&gt;
** Vorgegebene Implementation:&lt;br /&gt;
*** boolean isRed(Node node);&lt;br /&gt;
*** boolean isBlack(Node node);&lt;br /&gt;
*** class Node{ int color; Node left; Node right; }&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;B-Baum&#039;&#039;&#039;&lt;br /&gt;
* Element in B-Baum einfügen.&lt;br /&gt;
[[Bild:Info3-ss2007-3-btree.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 4: Graphen (10 Punkte) ==&lt;br /&gt;
a) Baue eine Adjazenzmatrix zu folgendem Graphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4a.png]]&lt;br /&gt;
&lt;br /&gt;
b) Dijkstra auf folgendem Graph ausführen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4b.png]]&lt;br /&gt;
&lt;br /&gt;
c) Definiere (formal oder als Text) den Begriff &amp;quot;aufspannender Baum&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
d) Führe union(D,F) auf folgender, als Wald realisierter disjunkter Menge aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4d.png]]&lt;br /&gt;
&lt;br /&gt;
e) Erstelle den Restflussgraphen zu folgendem Flussgraphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4e.png]]&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 5: Übungsorganisation (4 Punkte) ==&lt;br /&gt;
Es herrscht grosser Andrang bei der Sprechstunde. Keiner der wartenden Studierenden erinnert sich an die genaue Ankunftsreihenfolge. Einige erinnern sich jedoch noch an die Leute die bereits warteten. Es soll eine ungefähre Ankunftsreihenfolge bestimmt werden.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Name      || wartete bereits&lt;br /&gt;
|-&lt;br /&gt;
| Annett    || Daniel, Edeltraut&lt;br /&gt;
|-&lt;br /&gt;
| Bert      || Anett, Daniel, Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Claudia   || -&lt;br /&gt;
|-&lt;br /&gt;
| Daniel    || Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Edeltraut || Claudia&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
a) Erstelle einen Graph aus den Erinnerungen der wartenden Studierenden.&lt;br /&gt;
&lt;br /&gt;
b) Nun soll die ungefähre Reihenfolge der Studierenden berechnet werden.&lt;br /&gt;
&lt;br /&gt;
Algorithmus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ablauf:&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 6: Dynamisches Programmieren (5 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-6.png]]&lt;br /&gt;
&amp;lt;!-- Das Bild wurde gerendert mit freundlicher, allerdings unwissender, Unterstützung der deutschen Wikipedia.&lt;br /&gt;
Hier der TeX-Quellcode des obenstehenden Bildes:&lt;br /&gt;
&amp;lt;math&amp;gt;g(m, n) = \left\lbrace\begin{matrix} 42 &amp;amp; m = 0 \or n=0 \\ g(m-1, n-1) + g(m, n-1) &amp;amp; m &amp;gt; 0 \and n &amp;gt; 0 \end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine nicht-rekursive Java-Methode an, die g(m,n) für m, n e N berechnet. Die Methode soll dafür polynomielle Laufzeit benötigen&lt;br /&gt;
&lt;br /&gt;
b) Kleinste worst-case-Laufzeitklasse angeben:&lt;br /&gt;
&lt;br /&gt;
O( .... )&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 7: Geld wechseln (6 Punkte) ==&lt;br /&gt;
Gegeben ist ein Betrag, welcher durch möglichst wenige Geldstücke der Grössen { 200, 100, 50, 20, 10, 5, 2, 1 } dargestellt werden werden soll.&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine günstige Kodierung für die Geldstücke an&lt;br /&gt;
&lt;br /&gt;
b) Geben Sie eine Zielfunktion und eine Optimierungsrichtung (max/min) an.&lt;br /&gt;
&lt;br /&gt;
c) Geben Sie ein Greedy-Verfahren zur Lösung des Optimierungsproblems an (als Pseudocode oder verbal).&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
[[Informatik 4 (StuPO90)/Gedächtnisprotokoll Klausur SoSe 2007]]&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10212</id>
		<title>Informatik 3/Gedächtnisprotokoll Klausur SS07</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10212"/>
		<updated>2007-07-31T11:15:56Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: /* Aufgabe 2: HashTables (7 Punkte) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Aufgabe 1: Multiple Choice (7 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Kreuzen Sie jeweils wahr bzw. falsch an:&lt;br /&gt;
* ..&lt;br /&gt;
* Traversierung mit Breitensuche erzeugt einen aufspannenden Baum.&lt;br /&gt;
* Die Höhe eines binären Suchbaumes ist immer um 1 größer, als das Maximum der Höhen seiner Teilbäume.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Backtrackingalgorithmus finden der dieses löst.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Greedy-algorithmus finden der dieses löst.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Worst Case Aufwand von&lt;br /&gt;
* Hash einfuegen&lt;br /&gt;
* Einen Wert in einer Skipliste finden&lt;br /&gt;
* Rotieren in einem AVL-Baum&lt;br /&gt;
* Tiefensuch&lt;br /&gt;
* Kruskal&lt;br /&gt;
* Edmonds Karp Alg&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 2: HashTables (7 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Hashtabelle der Größe 4.&lt;br /&gt;
*Hashfunktion: h(k) = k mod 4&lt;br /&gt;
*Kollisonsauflösung&amp;quot;double hashing&amp;quot; a(k) = k+2&lt;br /&gt;
&lt;br /&gt;
Vier Werte mit Schlüsseln einfügen und Kollisionen zählen.&lt;br /&gt;
&lt;br /&gt;
(A,5) (B,11) (C,9) (D,14)&lt;br /&gt;
&lt;br /&gt;
Lösung:&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1,0&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ist die Anzahl der Kollisionen bei double hashing abhängig von der Reihenfolge in der die Elemente eingefügt werden? Begründung, ggf. Beispiel.&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 3: Suchbäume (11 Punkte) ==&lt;br /&gt;
&#039;&#039;&#039;AVL-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen von 3 in den folgenden AVL-Baum:&lt;br /&gt;
[[Bild:Info3-ss2007-3-avltree.png]]&lt;br /&gt;
&lt;br /&gt;
*Löschen von 10 aus dem folgenden AVL-Baum:&lt;br /&gt;
[[Bild:Info3-ss2007-3-avltree.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rot/Schwarz-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen von &#039;9&#039; in den folgenden Rot/Schwarz-Baum:&lt;br /&gt;
[[Bild:Info3-ss2007-3-rbtree.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Java-Programm schreiben für Höhenberechnung eines Rot-Schwarz-Baumes: int getBlackHeight(Node root)&lt;br /&gt;
** Rot-Schwarz-Baum als gültig vorausgesetzt.&lt;br /&gt;
** Vorgegebene Implementation:&lt;br /&gt;
*** boolean isRed(Node node);&lt;br /&gt;
*** boolean isBlack(Node node);&lt;br /&gt;
*** class Node{ int color; Node left; Node right; }&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;B-Baum&#039;&#039;&#039;&lt;br /&gt;
* Element in B-Baum einfügen.&lt;br /&gt;
[[Bild:Info3-ss2007-3-btree.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 4: Graphen (10 Punkte) ==&lt;br /&gt;
a) Baue eine Adjazenzmatrix zu folgendem Graphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4a.png]]&lt;br /&gt;
&lt;br /&gt;
b) Dijkstra auf folgendem Graph ausführen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4b.png]]&lt;br /&gt;
&lt;br /&gt;
c) Definiere (formal oder als Text) den Begriff &amp;quot;aufspannender Baum&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
d) Führe union(D,F) auf folgender, als Wald realisierter disjunkter Menge aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4d.png]]&lt;br /&gt;
&lt;br /&gt;
e) Erstelle den Restflussgraphen zu folgendem Flussgraphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4e.png]]&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 5: Übungsorganisation (4 Punkte) ==&lt;br /&gt;
Es herrscht grosser Andrang bei der Sprechstunde. Keiner der wartenden Studierenden erinnert sich an die genaue Ankunftsreihenfolge. Einige erinnern sich jedoch noch an die Leute die bereits warteten. Es soll eine ungefähre Ankunftsreihenfolge bestimmt werden.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Name      || wartete bereits&lt;br /&gt;
|-&lt;br /&gt;
| Annett    || Daniel, Edeltraut&lt;br /&gt;
|-&lt;br /&gt;
| Bert      || Anett, Daniel, Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Claudia   || -&lt;br /&gt;
|-&lt;br /&gt;
| Daniel    || Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Edeltraut || Claudia&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
a) Erstelle einen Graph aus den Erinnerungen der wartenden Studierenden.&lt;br /&gt;
&lt;br /&gt;
b) Nun soll die ungefähre Reihenfolge der Studierenden berechnet werden.&lt;br /&gt;
&lt;br /&gt;
Algorithmus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ablauf:&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 6: Dynamisches Programmieren (5 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-6.png]]&lt;br /&gt;
&amp;lt;!-- Das Bild wurde gerendert mit freundlicher, allerdings unwissender, Unterstützung der deutschen Wikipedia.&lt;br /&gt;
Hier der TeX-Quellcode des obenstehenden Bildes:&lt;br /&gt;
&amp;lt;math&amp;gt;g(m, n) = \left\lbrace\begin{matrix} 42 &amp;amp; m = 0 \or n=0 \\ g(m-1, n-1) + g(m, n-1) &amp;amp; m &amp;gt; 0 \and n &amp;gt; 0 \end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine nicht-rekursive Java-Methode an, die g(m,n) für m, n e N berechnet. Die Methode soll dafür polynomielle Laufzeit benötigen&lt;br /&gt;
&lt;br /&gt;
b) Kleinste worst-case-Laufzeitklasse angeben:&lt;br /&gt;
&lt;br /&gt;
O( .... )&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 7: Geld wechseln (6 Punkte) ==&lt;br /&gt;
Gegeben ist ein Betrag, welcher durch möglichst wenige Geldstücke der Grössen { 200, 100, 50, 20, 10, 5, 2, 1 } dargestellt werden werden soll.&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine günstige Kodierung für die Geldstücke an&lt;br /&gt;
&lt;br /&gt;
b) Geben Sie eine Zielfunktion und eine Optimierungsrichtung (max/min) an.&lt;br /&gt;
&lt;br /&gt;
c) Geben Sie ein Greedy-Verfahren zur Lösung des Optimierungsproblems an (als Pseudocode oder verbal).&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
[[Informatik 4 (StuPO90)/Gedächtnisprotokoll Klausur SoSe 2007]]&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Datei:Info3-ss2007-3-rbtree.png&amp;diff=10285</id>
		<title>Datei:Info3-ss2007-3-rbtree.png</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Datei:Info3-ss2007-3-rbtree.png&amp;diff=10285"/>
		<updated>2007-07-30T17:46:39Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10210</id>
		<title>Informatik 3/Gedächtnisprotokoll Klausur SS07</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10210"/>
		<updated>2007-07-30T17:46:30Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: /* Aufgabe 3: Suchbäume (11 Punkte) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Aufgabe 1: Multiple Choice (7 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Kreuzen Sie jeweils wahr bzw. falsch an:&lt;br /&gt;
* ..&lt;br /&gt;
* Traversierung mit Breitensuche erzeugt einen aufspannenden Baum.&lt;br /&gt;
* Die Höhe eines binären Suchbaumes ist immer um 1 größer, als das Maximum der Höhen seiner Teilbäume.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Backtrackingalgorithmus finden der dieses löst.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Greedy-algorithmus finden der dieses löst.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 2: HashTables (7 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Hashtabelle der Größe 4.&lt;br /&gt;
*Hashfunktion: h(k) = k mod 4&lt;br /&gt;
*Kollisonsauflösung&amp;quot;double hashing&amp;quot; a(k) = k+2&lt;br /&gt;
&lt;br /&gt;
Vier Werte mit Schlüsseln einfügen und Kollisionen zählen.&lt;br /&gt;
&lt;br /&gt;
(A,5) (B,11) (C,9) (D,14)&lt;br /&gt;
&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
&lt;br /&gt;
C -&amp;gt; 1, 3, 1 , 3 .. (kann nicht eingefügt werden) - Unsinn, bitte korrigieren [[Benutzer:TomyLobo|TomyLobo]]&lt;br /&gt;
&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
&lt;br /&gt;
0 blieb leer.&lt;br /&gt;
&lt;br /&gt;
Andere Lösung:&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1,0&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ist die Anzahl der Kollisionen bei double hashing abhängig von der Reihenfolge in der die Elemente eingefügt werden? Begründung, ggf. Beispiel.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 3: Suchbäume (11 Punkte) ==&lt;br /&gt;
&#039;&#039;&#039;AVL-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen von 3 in den folgenden AVL-Baum:&lt;br /&gt;
[[Bild:Info3-ss2007-3-avltree.png]]&lt;br /&gt;
&lt;br /&gt;
*Löschen von 10 aus dem folgenden AVL-Baum:&lt;br /&gt;
[[Bild:Info3-ss2007-3-avltree.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rot/Schwarz-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen von &#039;9&#039; in den folgenden Rot/Schwarz-Baum:&lt;br /&gt;
[[Bild:Info3-ss2007-3-rbtree.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Java-Programm schreiben für Höhenberechnung eines Rot-Schwarz-Baumes: int getBlackHeight(Node root)&lt;br /&gt;
** Rot-Schwarz-Baum als gültig vorausgesetzt.&lt;br /&gt;
** Vorgegebene Implementation:&lt;br /&gt;
*** boolean isRed(Node node);&lt;br /&gt;
*** boolean isBlack(Node node);&lt;br /&gt;
*** class Node{ int color; Node left; Node right; }&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;B-Baum&#039;&#039;&#039;&lt;br /&gt;
* Element in B-Baum einfügen.&lt;br /&gt;
[[Bild:Info3-ss2007-3-btree.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 4: Graphen (10 Punkte) ==&lt;br /&gt;
a) Baue eine Adjazenzmatrix zu folgendem Graphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4a.png]]&lt;br /&gt;
&lt;br /&gt;
b) Dijkstra auf folgendem Graph ausführen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4b.png]]&lt;br /&gt;
&lt;br /&gt;
c) Definiere (formal oder als Text) den Begriff &amp;quot;aufspannender Baum&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
d) Führe union(D,F) auf folgender, als Wald realisierter disjunkter Menge aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4d.png]]&lt;br /&gt;
&lt;br /&gt;
e) Erstelle den Restflussgraphen zu folgendem Flussgraphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4e.png]]&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 5: Übungsorganisation (4 Punkte) ==&lt;br /&gt;
Es herrscht grosser Andrang bei der Sprechstunde. Keiner der wartenden Studierenden erinnert sich an die genaue Ankunftsreihenfolge. Einige erinnern sich jedoch noch an die Leute die bereits warteten. Es soll eine ungefähre Ankunftsreihenfolge bestimmt werden.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Name      || wartete bereits&lt;br /&gt;
|-&lt;br /&gt;
| Annett    || Daniel, Edeltraut&lt;br /&gt;
|-&lt;br /&gt;
| Bert      || Anett, Daniel, Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Claudia   || -&lt;br /&gt;
|-&lt;br /&gt;
| Daniel    || Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Edeltraut || Claudia&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
a) Erstelle einen Graph aus den Erinnerungen der wartenden Studierenden.&lt;br /&gt;
&lt;br /&gt;
b) Nun soll die ungefähre Reihenfolge der Studierenden berechnet werden.&lt;br /&gt;
&lt;br /&gt;
Algorithmus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ablauf:&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 6: Dynamisches Programmieren (5 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-6.png]]&lt;br /&gt;
&amp;lt;!-- Das Bild wurde gerendert mit freundlicher, allerdings unwissender, Unterstützung der deutschen Wikipedia.&lt;br /&gt;
Hier der TeX-Quellcode des obenstehenden Bildes:&lt;br /&gt;
&amp;lt;math&amp;gt;g(m, n) = \left\lbrace\begin{matrix} 42 &amp;amp; m = 0 \or n=0 \\ g(m-1, n-1) + g(m, n-1) &amp;amp; m &amp;gt; 0 \and n &amp;gt; 0 \end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine nicht-rekursive Java-Methode an, die g(m,n) für m, n e N berechnet. Die Methode soll dafür polynomielle Laufzeit benötigen&lt;br /&gt;
&lt;br /&gt;
b) Kleinste worst-case-Laufzeitklasse angeben:&lt;br /&gt;
&lt;br /&gt;
O( .... )&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 7: Geld wechseln (6 Punkte) ==&lt;br /&gt;
Gegeben ist ein Betrag, welcher durch möglichst wenige Geldstücke der Grössen { 200, 100, 50, 20, 10, 5, 2, 1 } dargestellt werden werden soll.&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine günstige Kodierung für die Geldstücke an&lt;br /&gt;
&lt;br /&gt;
b) Geben Sie eine Zielfunktion und eine Optimierungsrichtung (max/min) an.&lt;br /&gt;
&lt;br /&gt;
c) Geben Sie ein Greedy-Verfahren zur Lösung des Optimierungsproblems an (als Pseudocode oder verbal).&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
[[Informatik 4 (StuPO90)/Gedächtnisprotokoll Klausur SoSe 2007]]&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Datei:Info3-ss2007-3-avltree.png&amp;diff=10284</id>
		<title>Datei:Info3-ss2007-3-avltree.png</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Datei:Info3-ss2007-3-avltree.png&amp;diff=10284"/>
		<updated>2007-07-30T17:32:16Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Diskussion:Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10231</id>
		<title>Diskussion:Informatik 3/Gedächtnisprotokoll Klausur SS07</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Diskussion:Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10231"/>
		<updated>2007-07-30T14:11:12Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: /* Ergebnisse meiner Klausureinsicht */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ergebnisse meiner Klausureinsicht ==&lt;br /&gt;
&lt;br /&gt;
der Abschnitt mit den Hash-Tabellen hat noch ne falsche Lösung drin, sollte derjenige rausnehmen, der es reingeschrieben hat.&lt;br /&gt;
&lt;br /&gt;
*5 -&amp;gt; 1&lt;br /&gt;
*11 -&amp;gt; 3&lt;br /&gt;
*9 -&amp;gt; 1 -&amp;gt; (1+9+2)%4=12%4=0&lt;br /&gt;
*14 -&amp;gt; 2&lt;br /&gt;
&lt;br /&gt;
weiterhin hab ich die Bäume in der Klausureinsicht nachgeschaut, werde ich einbauen sobald ich zuhause bin. Hier Vorab-Versionen:&lt;br /&gt;
&lt;br /&gt;
AVL:&lt;br /&gt;
&lt;br /&gt;
   8&lt;br /&gt;
  4  12&lt;br /&gt;
 2  10 14&lt;br /&gt;
        15&lt;br /&gt;
&lt;br /&gt;
Einzufügen war die 3, zu löschen war die 10, jeweils ausgehend vom obenstehenden baum, NICHT aufeinander aufbauend!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  5&lt;br /&gt;
 1 7&lt;br /&gt;
    8&lt;br /&gt;
&lt;br /&gt;
Einzufügen war die 9.&lt;br /&gt;
&lt;br /&gt;
[[Benutzer:TomyLobo|TomyLobo]]&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Diskussion:Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10230</id>
		<title>Diskussion:Informatik 3/Gedächtnisprotokoll Klausur SS07</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Diskussion:Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10230"/>
		<updated>2007-07-30T14:05:10Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: Ergebnisse meiner Klausureinsicht&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ergebnisse meiner Klausureinsicht ==&lt;br /&gt;
&lt;br /&gt;
der Abschnitt mit den Hash-Tabellen hat noch ne falsche Lösung drin, sollte derjenige rausnehmen, der es reingeschrieben hat.&lt;br /&gt;
&lt;br /&gt;
*5 -&amp;gt; 1&lt;br /&gt;
*11 -&amp;gt; 3&lt;br /&gt;
*9 -&amp;gt; 1 -&amp;gt; (1+9+2)%4=12%4=0&lt;br /&gt;
*14 -&amp;gt; 2&lt;br /&gt;
&lt;br /&gt;
weiterhin hab ich die Bäume in der Klausureinsicht nachgeschaut, werde ich einbauen sobald ich zuhause bin. Hier Vorab-Versionen:&lt;br /&gt;
&lt;br /&gt;
AVL:&lt;br /&gt;
&lt;br /&gt;
   8&lt;br /&gt;
  4  12&lt;br /&gt;
 2  10 14&lt;br /&gt;
        15&lt;br /&gt;
&lt;br /&gt;
Einzufügen war die 3, zu löschen war die 10.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  5&lt;br /&gt;
 1 7&lt;br /&gt;
    8&lt;br /&gt;
&lt;br /&gt;
Einzufügen war die 9.&lt;br /&gt;
&lt;br /&gt;
[[Benutzer:TomyLobo|TomyLobo]]&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10209</id>
		<title>Informatik 3/Gedächtnisprotokoll Klausur SS07</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10209"/>
		<updated>2007-07-30T13:53:40Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: /* Aufgabe 2: HashTables (7 Punkte) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Aufgabe 1: Multiple Choice (7 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Kreuzen Sie jeweils wahr bzw. falsch an:&lt;br /&gt;
* ..&lt;br /&gt;
* Traversierung mit Breitensuche erzeugt einen aufspannenden Baum.&lt;br /&gt;
* Die Höhe eines binären Suchbaumes ist immer um 1 größer, als das Maximum der Höhen seiner Teilbäume.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Backtrackingalgorithmus finden der dieses löst.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Greedy-algorithmus finden der dieses löst.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 2: HashTables (7 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Hashtabelle der Größe 4.&lt;br /&gt;
*Hashfunktion: h(k) = k mod 4&lt;br /&gt;
*Kollisonsauflösung&amp;quot;double hashing&amp;quot; a(k) = k+2&lt;br /&gt;
&lt;br /&gt;
Vier Werte mit Schlüsseln einfügen und Kollisionen zählen.&lt;br /&gt;
&lt;br /&gt;
(A,5) (B,11) (C,9) (D,14)&lt;br /&gt;
&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
&lt;br /&gt;
C -&amp;gt; 1, 3, 1 , 3 .. (kann nicht eingefügt werden) - Unsinn, bitte korrigieren [[Benutzer:TomyLobo|TomyLobo]]&lt;br /&gt;
&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
&lt;br /&gt;
0 blieb leer.&lt;br /&gt;
&lt;br /&gt;
Andere Lösung:&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1,0&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ist die Anzahl der Kollisionen bei double hashing abhängig von der Reihenfolge in der die Elemente eingefügt werden? Begründung, ggf. Beispiel.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 3: Suchbäume (11 Punkte) ==&lt;br /&gt;
&#039;&#039;&#039;AVL-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Löschen aus AVL-Baum&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rot/Schwarz-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen in RS-Baum&lt;br /&gt;
*Java-Programm schreiben für Höhenberechnung eines Rot-Schwarz-Baumes: int getBlackHeight(Node root)&lt;br /&gt;
** Rot-Schwarz-Baum als gültig vorausgesetzt.&lt;br /&gt;
** Vorgegebene Implementation:&lt;br /&gt;
*** boolean isRed(Node node);&lt;br /&gt;
*** boolean isBlack(Node node);&lt;br /&gt;
*** class Node{ int color; Node left; Node right; }&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;B-Baum&#039;&#039;&#039;&lt;br /&gt;
* Element in B-Baum einfügen.&lt;br /&gt;
[[Bild:Info3-ss2007-3-btree.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 4: Graphen (10 Punkte) ==&lt;br /&gt;
a) Baue eine Adjazenzmatrix zu folgendem Graphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4a.png]]&lt;br /&gt;
&lt;br /&gt;
b) Dijkstra auf folgendem Graph ausführen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4b.png]]&lt;br /&gt;
&lt;br /&gt;
c) Definiere (formal oder als Text) den Begriff &amp;quot;aufspannender Baum&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
d) Führe union(D,F) auf folgender, als Wald realisierter disjunkter Menge aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4d.png]]&lt;br /&gt;
&lt;br /&gt;
e) Erstelle den Restflussgraphen zu folgendem Flussgraphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4e.png]]&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 5: Übungsorganisation (4 Punkte) ==&lt;br /&gt;
Es herrscht grosser Andrang bei der Sprechstunde. Keiner der wartenden Studierenden erinnert sich an die genaue Ankunftsreihenfolge. Einige erinnern sich jedoch noch an die Leute die bereits warteten. Es soll eine ungefähre Ankunftsreihenfolge bestimmt werden.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Name      || wartete bereits&lt;br /&gt;
|-&lt;br /&gt;
| Annett    || Daniel, Edeltraut&lt;br /&gt;
|-&lt;br /&gt;
| Bert      || Anett, Daniel, Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Claudia   || -&lt;br /&gt;
|-&lt;br /&gt;
| Daniel    || Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Edeltraut || Claudia&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
a) Erstelle einen Graph aus den Erinnerungen der wartenden Studierenden.&lt;br /&gt;
&lt;br /&gt;
b) Nun soll die ungefähre Reihenfolge der Studierenden berechnet werden.&lt;br /&gt;
&lt;br /&gt;
Algorithmus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ablauf:&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 6: Dynamisches Programmieren (5 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-6.png]]&lt;br /&gt;
&amp;lt;!-- Das Bild wurde gerendert mit freundlicher, allerdings unwissender, Unterstützung der deutschen Wikipedia.&lt;br /&gt;
Hier der TeX-Quellcode des obenstehenden Bildes:&lt;br /&gt;
&amp;lt;math&amp;gt;g(m, n) = \left\lbrace\begin{matrix} 42 &amp;amp; m = 0 \or n=0 \\ g(m-1, n-1) + g(m, n-1) &amp;amp; m &amp;gt; 0 \and n &amp;gt; 0 \end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine nicht-rekursive Java-Methode an, die g(m,n) für m, n e N berechnet. Die Methode soll dafür polynomielle Laufzeit benötigen&lt;br /&gt;
&lt;br /&gt;
b) Kleinste worst-case-Laufzeitklasse angeben:&lt;br /&gt;
&lt;br /&gt;
O( .... )&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 7: Geld wechseln (6 Punkte) ==&lt;br /&gt;
Gegeben ist ein Betrag, welcher durch möglichst wenige Geldstücke der Grössen { 200, 100, 50, 20, 10, 5, 2, 1 } dargestellt werden werden soll.&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine günstige Kodierung für die Geldstücke an&lt;br /&gt;
&lt;br /&gt;
b) Geben Sie eine Zielfunktion und eine Optimierungsrichtung (max/min) an.&lt;br /&gt;
&lt;br /&gt;
c) Geben Sie ein Greedy-Verfahren zur Lösung des Optimierungsproblems an (als Pseudocode oder verbal).&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
[[Informatik 4 (StuPO90)/Gedächtnisprotokoll Klausur SoSe 2007]]&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10208</id>
		<title>Informatik 3/Gedächtnisprotokoll Klausur SS07</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10208"/>
		<updated>2007-07-30T13:51:25Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: Punkte bei Klausureinsicht mitgeloggt, die stimmen jetzt so :)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Aufgabe 1: Multiple Choice (7 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Kreuzen Sie jeweils wahr bzw. falsch an:&lt;br /&gt;
* ..&lt;br /&gt;
* Traversierung mit Breitensuche erzeugt einen aufspannenden Baum.&lt;br /&gt;
* Die Höhe eines binären Suchbaumes ist immer um 1 größer, als das Maximum der Höhen seiner Teilbäume.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Backtrackingalgorithmus finden der dieses löst.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Greedy-algorithmus finden der dieses löst.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 2: HashTables (7 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Hashtabelle der Größe 4.&lt;br /&gt;
*Hashfunktion: h(k) = k mod 4&lt;br /&gt;
*Kollisonsauflösung&amp;quot;double hashing&amp;quot; a(k) = k+2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Vier Werte mit Schlüsseln einfügen und Kollisionen zählen.&lt;br /&gt;
(A,5) (B,11) (C,9) (D,14)&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1, 3, 1 , 3 .. (kann nicht eingefügt werden)&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
0 blieb leer.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Andere Lösung:&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1,0&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ist die Anzahl der Kollisionen bei double hashing abhängig von der Reihenfolge in der die Elemente eingefügt werden? Begründung, ggf. Beispiel.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 3: Suchbäume (11 Punkte) ==&lt;br /&gt;
&#039;&#039;&#039;AVL-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Löschen aus AVL-Baum&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rot/Schwarz-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen in RS-Baum&lt;br /&gt;
*Java-Programm schreiben für Höhenberechnung eines Rot-Schwarz-Baumes: int getBlackHeight(Node root)&lt;br /&gt;
** Rot-Schwarz-Baum als gültig vorausgesetzt.&lt;br /&gt;
** Vorgegebene Implementation:&lt;br /&gt;
*** boolean isRed(Node node);&lt;br /&gt;
*** boolean isBlack(Node node);&lt;br /&gt;
*** class Node{ int color; Node left; Node right; }&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;B-Baum&#039;&#039;&#039;&lt;br /&gt;
* Element in B-Baum einfügen.&lt;br /&gt;
[[Bild:Info3-ss2007-3-btree.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 4: Graphen (10 Punkte) ==&lt;br /&gt;
a) Baue eine Adjazenzmatrix zu folgendem Graphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4a.png]]&lt;br /&gt;
&lt;br /&gt;
b) Dijkstra auf folgendem Graph ausführen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4b.png]]&lt;br /&gt;
&lt;br /&gt;
c) Definiere (formal oder als Text) den Begriff &amp;quot;aufspannender Baum&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
d) Führe union(D,F) auf folgender, als Wald realisierter disjunkter Menge aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4d.png]]&lt;br /&gt;
&lt;br /&gt;
e) Erstelle den Restflussgraphen zu folgendem Flussgraphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4e.png]]&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 5: Übungsorganisation (4 Punkte) ==&lt;br /&gt;
Es herrscht grosser Andrang bei der Sprechstunde. Keiner der wartenden Studierenden erinnert sich an die genaue Ankunftsreihenfolge. Einige erinnern sich jedoch noch an die Leute die bereits warteten. Es soll eine ungefähre Ankunftsreihenfolge bestimmt werden.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Name      || wartete bereits&lt;br /&gt;
|-&lt;br /&gt;
| Annett    || Daniel, Edeltraut&lt;br /&gt;
|-&lt;br /&gt;
| Bert      || Anett, Daniel, Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Claudia   || -&lt;br /&gt;
|-&lt;br /&gt;
| Daniel    || Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Edeltraut || Claudia&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
a) Erstelle einen Graph aus den Erinnerungen der wartenden Studierenden.&lt;br /&gt;
&lt;br /&gt;
b) Nun soll die ungefähre Reihenfolge der Studierenden berechnet werden.&lt;br /&gt;
&lt;br /&gt;
Algorithmus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ablauf:&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 6: Dynamisches Programmieren (5 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-6.png]]&lt;br /&gt;
&amp;lt;!-- Das Bild wurde gerendert mit freundlicher, allerdings unwissender, Unterstützung der deutschen Wikipedia.&lt;br /&gt;
Hier der TeX-Quellcode des obenstehenden Bildes:&lt;br /&gt;
&amp;lt;math&amp;gt;g(m, n) = \left\lbrace\begin{matrix} 42 &amp;amp; m = 0 \or n=0 \\ g(m-1, n-1) + g(m, n-1) &amp;amp; m &amp;gt; 0 \and n &amp;gt; 0 \end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine nicht-rekursive Java-Methode an, die g(m,n) für m, n e N berechnet. Die Methode soll dafür polynomielle Laufzeit benötigen&lt;br /&gt;
&lt;br /&gt;
b) Kleinste worst-case-Laufzeitklasse angeben:&lt;br /&gt;
&lt;br /&gt;
O( .... )&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 7: Geld wechseln (6 Punkte) ==&lt;br /&gt;
Gegeben ist ein Betrag, welcher durch möglichst wenige Geldstücke der Grössen { 200, 100, 50, 20, 10, 5, 2, 1 } dargestellt werden werden soll.&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine günstige Kodierung für die Geldstücke an&lt;br /&gt;
&lt;br /&gt;
b) Geben Sie eine Zielfunktion und eine Optimierungsrichtung (max/min) an.&lt;br /&gt;
&lt;br /&gt;
c) Geben Sie ein Greedy-Verfahren zur Lösung des Optimierungsproblems an (als Pseudocode oder verbal).&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
[[Informatik 4 (StuPO90)/Gedächtnisprotokoll Klausur SoSe 2007]]&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Informatik_4_(StuPO90)/Ged%C3%A4chtnisprotokoll_Klausur_SoSe_2007&amp;diff=10167</id>
		<title>Informatik 4 (StuPO90)/Gedächtnisprotokoll Klausur SoSe 2007</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Informatik_4_(StuPO90)/Ged%C3%A4chtnisprotokoll_Klausur_SoSe_2007&amp;diff=10167"/>
		<updated>2007-07-30T13:48:29Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: /* Aufgabe 2: Assembler (13 Punkte) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Aufgabe 1: Kurze Fragen (10 Punkte) ==&lt;br /&gt;
* Unterschiede und Vorteile von synchroner und asynchroner Nachrichtenübertragung?&lt;br /&gt;
** blockierend / nicht blockieren vs. Nachricht geht evtl. verloren&lt;br /&gt;
&lt;br /&gt;
* Vorteile von leichtgewichtigen Prozessen&lt;br /&gt;
** schnellerer Prozesswechsel, da gemeinsamer Adressraum&lt;br /&gt;
** einfache Implementierung&lt;br /&gt;
** eigener Scheduler ?&lt;br /&gt;
&lt;br /&gt;
* Erkläre die zwei Stufen von Interruptbehandlung. Grund der Zweistufigkeit?&lt;br /&gt;
** Stufe 1: nicht unterbrechbar, nur nötigste Behandlung (speichern).&lt;br /&gt;
** Stufe 2: abschließende Behandlung des interrupts... &lt;br /&gt;
** Grund: Nicht unterbrechbarer Zeitraum mötlichst klein, damit keine/wenige Interrupts verloren gehen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 2: Assembler (12 Punkte) ==&lt;br /&gt;
Programmieren sie in Assembler die Funktion _binom(int *a, int *b) (10 Punkte)&lt;br /&gt;
&lt;br /&gt;
*Berechne a²+2ab+b² (!) und speichere das ergebnis in *b und gib 0 bei geglückter Operation zurück.&lt;br /&gt;
*Falls a&amp;lt;0 oder a&amp;gt;32767 oder b&amp;gt;32767 oder b&amp;lt;-32768 gib sofort -1 zurück.&lt;br /&gt;
*Bei der addition der werte a², b² und 2ab kann es zum Überlauf kommen.&lt;br /&gt;
**Falls das passiert gib ebenfalls -1 zurück.(Rückgaben erfolgen wie üblich im Register D0)&lt;br /&gt;
*Schreibe desweiteren eine Subroutine, die das Quadrat einer Zahl berechnet (geht in 2 Zeilen).&lt;br /&gt;
&lt;br /&gt;
Gib den Stack nach dem Aufruf der Subroutine und der Sicherung der Register an (2 Punkte)&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 3: Semaphoren (10 Punkte) ==&lt;br /&gt;
Elefanten und Mäuse gehen auf ein Schiff.&lt;br /&gt;
Dabei sollen immer möglichst doppelt so viele Mäuse wie Elefanten auf dem Schiff sein.&lt;br /&gt;
Nur eine Differenz von 1 ist erlaubt..&lt;br /&gt;
&lt;br /&gt;
sei n die Anzahl der Elefanten und m die Anzahl der Mäuse.&lt;br /&gt;
&lt;br /&gt;
wenn n Elefanten auf dem Schiff sind, dann muss beachtet werden:&lt;br /&gt;
&lt;br /&gt;
*wenn n &amp;gt; 2m ist, dann muss eine Maus an Bord kommen&lt;br /&gt;
*wenn n &amp;lt; 2m ist, dann muss ein Elefant an Bord kommen&lt;br /&gt;
*wenn n = 2m ist, dann muss man schauen:&lt;br /&gt;
*um das Gleichgewicht zu erhalten können an Bord kommen:&lt;br /&gt;
:Elefant, Maus, Maus oder Maus, Elefant, Maus, damit keine Verletzung der ersten 2 Punkte zustandekommt.&lt;br /&gt;
&lt;br /&gt;
die Aufgabe hat echt reingehauen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 4: Monitore (13 Punkte) ==&lt;br /&gt;
In einem Schwimmbad gibt es ein Schwimmbecken.&lt;br /&gt;
Es gibt Turmspringer, Schwimmer und den Bademeister.&lt;br /&gt;
Synchronisiere mit den Folgenden Regeln über Monitore:&lt;br /&gt;
*Turmspringer und Schwimmer dürfen das Schwimmbecken nicht gleichzeitig benutzen.&lt;br /&gt;
*Wenn kein Bademeister anwesend ist, darf kein Schwimmer ins Becken.&lt;br /&gt;
*Turmspringer dürfen auch ins Becken springen, wenn Schwimmer warten, weil kein Bademeister da ist.&lt;br /&gt;
*Wenn ein Bademeister anwesend ist, haben die Schwimmer vor den Turmspringern Vorrang.&lt;br /&gt;
*Der Bademeister darf erst Feierabend machen (weggehen), wenn kein Schwimmer mehr im Becken ist&lt;br /&gt;
*Der Bademeister darf insbesondere auch dann gehen, wenn noch Schwimmer am Beckenrand warten (voraussgesetzt, es befindet sich kein Schwimmer im Becken).&lt;br /&gt;
*Es kann davon ausgegangen werden, dass es maximal einen Bademeister gibt.&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 5: Betriebsmittelvergabe (5 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Die Betriebsmittel werden in der Aufgabe nach preämptiver Planung nach Laufzeit&lt;br /&gt;
vergeben, gegeben sind folgende Prozesse:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info4-ss2007-5.png]]&lt;br /&gt;
&lt;br /&gt;
Geben Sie für die jewelige Zeit die Vergabereihenfolge für die Prozesse an:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
-----------------------------------&lt;br /&gt;
1 2 3 4 5 6 7 8 9 10&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Geben Sie zusätzlich die zeitlichen Verläufe der Inhalte der Warte-Queues an&lt;br /&gt;
und berechnen Sie die mittlere Wartezeit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
[[Informatik 3/Gedächtnisprotokoll Klausur SS07]]&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Informatik_4_(StuPO90)/Ged%C3%A4chtnisprotokoll_Klausur_SoSe_2007&amp;diff=10166</id>
		<title>Informatik 4 (StuPO90)/Gedächtnisprotokoll Klausur SoSe 2007</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Informatik_4_(StuPO90)/Ged%C3%A4chtnisprotokoll_Klausur_SoSe_2007&amp;diff=10166"/>
		<updated>2007-07-30T13:47:38Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: /* Aufgabe 4: Monitore (12 Punkte) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Aufgabe 1: Kurze Fragen (10 Punkte) ==&lt;br /&gt;
* Unterschiede und Vorteile von synchroner und asynchroner Nachrichtenübertragung?&lt;br /&gt;
** blockierend / nicht blockieren vs. Nachricht geht evtl. verloren&lt;br /&gt;
&lt;br /&gt;
* Vorteile von leichtgewichtigen Prozessen&lt;br /&gt;
** schnellerer Prozesswechsel, da gemeinsamer Adressraum&lt;br /&gt;
** einfache Implementierung&lt;br /&gt;
** eigener Scheduler ?&lt;br /&gt;
&lt;br /&gt;
* Erkläre die zwei Stufen von Interruptbehandlung. Grund der Zweistufigkeit?&lt;br /&gt;
** Stufe 1: nicht unterbrechbar, nur nötigste Behandlung (speichern).&lt;br /&gt;
** Stufe 2: abschließende Behandlung des interrupts... &lt;br /&gt;
** Grund: Nicht unterbrechbarer Zeitraum mötlichst klein, damit keine/wenige Interrupts verloren gehen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 2: Assembler (13 Punkte) ==&lt;br /&gt;
Programmieren sie in Assembler die Funktion _binom(int *a, int *b)&lt;br /&gt;
&lt;br /&gt;
*Berechne a²+2ab+b² (!) und speichere das ergebnis in *b und gib 0 bei geglückter Operation zurück.&lt;br /&gt;
*Falls a&amp;lt;0 oder a&amp;gt;32767 oder b&amp;gt;32767 oder b&amp;lt;-32768 gib sofort -1 zurück.&lt;br /&gt;
*Bei der addition der werte a², b² und 2ab kann es zum Überlauf kommen.&lt;br /&gt;
**Falls das passiert gib ebenfalls -1 zurück.(Rückgaben erfolgen wie üblich im Register D0)&lt;br /&gt;
*Schreibe desweiteren eine Subroutine, die das Quadrat einer Zahl berechnet (geht in 2 Zeilen).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 3: Semaphoren (10 Punkte) ==&lt;br /&gt;
Elefanten und Mäuse gehen auf ein Schiff.&lt;br /&gt;
Dabei sollen immer möglichst doppelt so viele Mäuse wie Elefanten auf dem Schiff sein.&lt;br /&gt;
Nur eine Differenz von 1 ist erlaubt..&lt;br /&gt;
&lt;br /&gt;
sei n die Anzahl der Elefanten und m die Anzahl der Mäuse.&lt;br /&gt;
&lt;br /&gt;
wenn n Elefanten auf dem Schiff sind, dann muss beachtet werden:&lt;br /&gt;
&lt;br /&gt;
*wenn n &amp;gt; 2m ist, dann muss eine Maus an Bord kommen&lt;br /&gt;
*wenn n &amp;lt; 2m ist, dann muss ein Elefant an Bord kommen&lt;br /&gt;
*wenn n = 2m ist, dann muss man schauen:&lt;br /&gt;
*um das Gleichgewicht zu erhalten können an Bord kommen:&lt;br /&gt;
:Elefant, Maus, Maus oder Maus, Elefant, Maus, damit keine Verletzung der ersten 2 Punkte zustandekommt.&lt;br /&gt;
&lt;br /&gt;
die Aufgabe hat echt reingehauen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 4: Monitore (13 Punkte) ==&lt;br /&gt;
In einem Schwimmbad gibt es ein Schwimmbecken.&lt;br /&gt;
Es gibt Turmspringer, Schwimmer und den Bademeister.&lt;br /&gt;
Synchronisiere mit den Folgenden Regeln über Monitore:&lt;br /&gt;
*Turmspringer und Schwimmer dürfen das Schwimmbecken nicht gleichzeitig benutzen.&lt;br /&gt;
*Wenn kein Bademeister anwesend ist, darf kein Schwimmer ins Becken.&lt;br /&gt;
*Turmspringer dürfen auch ins Becken springen, wenn Schwimmer warten, weil kein Bademeister da ist.&lt;br /&gt;
*Wenn ein Bademeister anwesend ist, haben die Schwimmer vor den Turmspringern Vorrang.&lt;br /&gt;
*Der Bademeister darf erst Feierabend machen (weggehen), wenn kein Schwimmer mehr im Becken ist&lt;br /&gt;
*Der Bademeister darf insbesondere auch dann gehen, wenn noch Schwimmer am Beckenrand warten (voraussgesetzt, es befindet sich kein Schwimmer im Becken).&lt;br /&gt;
*Es kann davon ausgegangen werden, dass es maximal einen Bademeister gibt.&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 5: Betriebsmittelvergabe (5 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Die Betriebsmittel werden in der Aufgabe nach preämptiver Planung nach Laufzeit&lt;br /&gt;
vergeben, gegeben sind folgende Prozesse:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info4-ss2007-5.png]]&lt;br /&gt;
&lt;br /&gt;
Geben Sie für die jewelige Zeit die Vergabereihenfolge für die Prozesse an:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
-----------------------------------&lt;br /&gt;
1 2 3 4 5 6 7 8 9 10&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Geben Sie zusätzlich die zeitlichen Verläufe der Inhalte der Warte-Queues an&lt;br /&gt;
und berechnen Sie die mittlere Wartezeit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
[[Informatik 3/Gedächtnisprotokoll Klausur SS07]]&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10206</id>
		<title>Informatik 3/Gedächtnisprotokoll Klausur SS07</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10206"/>
		<updated>2007-07-29T15:00:29Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: /* Aufgabe 7: Geld wechseln (&amp;gt;=3 (6?) Punkte) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Aufgabe 1: Multiple Choice (10(?) Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Kreuzen Sie jeweils wahr bzw. falsch an:&lt;br /&gt;
* ..&lt;br /&gt;
* Traversierung mit Breitensuche erzeugt einen aufspannenden Baum.&lt;br /&gt;
* Die Höhe eines binären Suchbaumes ist immer um 1 größer, als das Maximum der Höhen seiner Teilbäume.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Backtrackingalgorithmus finden der dieses löst.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Greedy-algorithmus finden der dieses löst.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 2: HashTables (&amp;gt;=5 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Hashtabelle der Größe 4.&lt;br /&gt;
*Hashfunktion: h(k) = k mod 4&lt;br /&gt;
*Kollisonsauflösung&amp;quot;double hashing&amp;quot; a(k) = k+2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Vier Werte mit Schlüsseln einfügen und Kollisionen zählen.&lt;br /&gt;
(A,5) (B,11) (C,9) (D,14)&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1, 3, 1 , 3 .. (kann nicht eingefügt werden)&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
0 blieb leer.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Andere Lösung:&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1,0&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ist die Anzahl der Kollisionen bei double hashing abhängig von der Reihenfolge in der die Elemente eingefügt werden? Begründung, ggf. Beispiel.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 3: Suchbäume (&amp;gt;=10 Punkte) ==&lt;br /&gt;
&#039;&#039;&#039;AVL-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Löschen aus AVL-Baum&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rot/Schwarz-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen in RS-Baum&lt;br /&gt;
*Java-Programm schreiben für Höhenberechnung eines Rot-Schwarz-Baumes: int getBlackHeight(Node root)&lt;br /&gt;
** Rot-Schwarz-Baum als gültig vorausgesetzt.&lt;br /&gt;
** Vorgegebene Implementation:&lt;br /&gt;
*** boolean isRed(Node node);&lt;br /&gt;
*** boolean isBlack(Node node);&lt;br /&gt;
*** class Node{ int color; Node left; Node right; }&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;B-Baum&#039;&#039;&#039;&lt;br /&gt;
* Element in B-Baum einfügen.&lt;br /&gt;
[[Bild:Info3-ss2007-3-btree.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 4: Graphen (&amp;gt;=9 Punkte) ==&lt;br /&gt;
a) Baue eine Adjazenzmatrix zu folgendem Graphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4a.png]]&lt;br /&gt;
&lt;br /&gt;
b) Dijkstra auf folgendem Graph ausführen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4b.png]]&lt;br /&gt;
&lt;br /&gt;
c) Definiere (formal oder als Text) den Begriff &amp;quot;aufspannender Baum&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
d) Führe union(D,F) auf folgender, als Wald realisierter disjunkter Menge aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4d.png]]&lt;br /&gt;
&lt;br /&gt;
e) Erstelle den Restflussgraphen zu folgendem Flussgraphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4e.png]]&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 5: Übungsorganisation (&amp;gt;=8 Punkte) ==&lt;br /&gt;
Es herrscht grosser Andrang bei der Sprechstunde. Keiner der wartenden Studierenden erinnert sich an die genaue Ankunftsreihenfolge. Einige erinnern sich jedoch noch an die Leute die bereits warteten. Es soll eine ungefähre Ankunftsreihenfolge bestimmt werden.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Name      || wartete bereits&lt;br /&gt;
|-&lt;br /&gt;
| Annett    || Daniel, Edeltraut&lt;br /&gt;
|-&lt;br /&gt;
| Bert      || Anett, Daniel, Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Claudia   || -&lt;br /&gt;
|-&lt;br /&gt;
| Daniel    || Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Edeltraut || Claudia&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
a) Erstelle einen Graph aus den Erinnerungen der wartenden Studierenden.&lt;br /&gt;
&lt;br /&gt;
b) Nun soll die ungefähre Reihenfolge der Studierenden berechnet werden.&lt;br /&gt;
&lt;br /&gt;
Algorithmus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ablauf:&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 6: Dynamisches Programmieren (&amp;gt;=5 (6?) Punkte) ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-6.png]]&lt;br /&gt;
&amp;lt;!-- Das Bild wurde gerendert mit freundlicher, allerdings unwissender, Unterstützung der deutschen Wikipedia.&lt;br /&gt;
Hier der TeX-Quellcode des obenstehenden Bildes:&lt;br /&gt;
&amp;lt;math&amp;gt;g(m, n) = \left\lbrace\begin{matrix} 42 &amp;amp; m = 0 \or n=0 \\ g(m-1, n-1) + g(m, n-1) &amp;amp; m &amp;gt; 0 \and n &amp;gt; 0 \end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine nicht-rekursive Java-Methode an, die g(m,n) für m, n e N berechnet. Die Methode soll dafür polynomielle Laufzeit benötigen&lt;br /&gt;
&lt;br /&gt;
b) Kleinste worst-case-Laufzeitklasse angeben:&lt;br /&gt;
&lt;br /&gt;
O( .... )&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 7: Geld wechseln (&amp;gt;=6 Punkte) ==&lt;br /&gt;
Gegeben ist ein Betrag, welcher durch möglichst wenige Geldstücke der Grössen { 200, 100, 50, 20, 10, 5, 2, 1 } dargestellt werden werden soll.&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine günstige Kodierung für die Geldstücke an&lt;br /&gt;
&lt;br /&gt;
b) Geben Sie eine Zielfunktion und eine Optimierungsrichtung (max/min) an.&lt;br /&gt;
&lt;br /&gt;
c) Geben Sie ein Greedy-Verfahren zur Lösung des Optimierungsproblems an (als Pseudocode oder verbal).&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
[[Informatik 4 (StuPO90)/Gedächtnisprotokoll Klausur SoSe 2007]]&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10205</id>
		<title>Informatik 3/Gedächtnisprotokoll Klausur SS07</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10205"/>
		<updated>2007-07-29T15:00:26Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: /* Aufgabe 5: Übungsorganisation (&amp;gt;=3 Punkte) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Aufgabe 1: Multiple Choice (10(?) Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Kreuzen Sie jeweils wahr bzw. falsch an:&lt;br /&gt;
* ..&lt;br /&gt;
* Traversierung mit Breitensuche erzeugt einen aufspannenden Baum.&lt;br /&gt;
* Die Höhe eines binären Suchbaumes ist immer um 1 größer, als das Maximum der Höhen seiner Teilbäume.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Backtrackingalgorithmus finden der dieses löst.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Greedy-algorithmus finden der dieses löst.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 2: HashTables (&amp;gt;=5 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Hashtabelle der Größe 4.&lt;br /&gt;
*Hashfunktion: h(k) = k mod 4&lt;br /&gt;
*Kollisonsauflösung&amp;quot;double hashing&amp;quot; a(k) = k+2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Vier Werte mit Schlüsseln einfügen und Kollisionen zählen.&lt;br /&gt;
(A,5) (B,11) (C,9) (D,14)&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1, 3, 1 , 3 .. (kann nicht eingefügt werden)&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
0 blieb leer.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Andere Lösung:&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1,0&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ist die Anzahl der Kollisionen bei double hashing abhängig von der Reihenfolge in der die Elemente eingefügt werden? Begründung, ggf. Beispiel.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 3: Suchbäume (&amp;gt;=10 Punkte) ==&lt;br /&gt;
&#039;&#039;&#039;AVL-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Löschen aus AVL-Baum&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rot/Schwarz-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen in RS-Baum&lt;br /&gt;
*Java-Programm schreiben für Höhenberechnung eines Rot-Schwarz-Baumes: int getBlackHeight(Node root)&lt;br /&gt;
** Rot-Schwarz-Baum als gültig vorausgesetzt.&lt;br /&gt;
** Vorgegebene Implementation:&lt;br /&gt;
*** boolean isRed(Node node);&lt;br /&gt;
*** boolean isBlack(Node node);&lt;br /&gt;
*** class Node{ int color; Node left; Node right; }&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;B-Baum&#039;&#039;&#039;&lt;br /&gt;
* Element in B-Baum einfügen.&lt;br /&gt;
[[Bild:Info3-ss2007-3-btree.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 4: Graphen (&amp;gt;=9 Punkte) ==&lt;br /&gt;
a) Baue eine Adjazenzmatrix zu folgendem Graphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4a.png]]&lt;br /&gt;
&lt;br /&gt;
b) Dijkstra auf folgendem Graph ausführen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4b.png]]&lt;br /&gt;
&lt;br /&gt;
c) Definiere (formal oder als Text) den Begriff &amp;quot;aufspannender Baum&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
d) Führe union(D,F) auf folgender, als Wald realisierter disjunkter Menge aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4d.png]]&lt;br /&gt;
&lt;br /&gt;
e) Erstelle den Restflussgraphen zu folgendem Flussgraphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4e.png]]&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 5: Übungsorganisation (&amp;gt;=8 Punkte) ==&lt;br /&gt;
Es herrscht grosser Andrang bei der Sprechstunde. Keiner der wartenden Studierenden erinnert sich an die genaue Ankunftsreihenfolge. Einige erinnern sich jedoch noch an die Leute die bereits warteten. Es soll eine ungefähre Ankunftsreihenfolge bestimmt werden.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Name      || wartete bereits&lt;br /&gt;
|-&lt;br /&gt;
| Annett    || Daniel, Edeltraut&lt;br /&gt;
|-&lt;br /&gt;
| Bert      || Anett, Daniel, Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Claudia   || -&lt;br /&gt;
|-&lt;br /&gt;
| Daniel    || Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Edeltraut || Claudia&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
a) Erstelle einen Graph aus den Erinnerungen der wartenden Studierenden.&lt;br /&gt;
&lt;br /&gt;
b) Nun soll die ungefähre Reihenfolge der Studierenden berechnet werden.&lt;br /&gt;
&lt;br /&gt;
Algorithmus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ablauf:&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 6: Dynamisches Programmieren (&amp;gt;=5 (6?) Punkte) ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-6.png]]&lt;br /&gt;
&amp;lt;!-- Das Bild wurde gerendert mit freundlicher, allerdings unwissender, Unterstützung der deutschen Wikipedia.&lt;br /&gt;
Hier der TeX-Quellcode des obenstehenden Bildes:&lt;br /&gt;
&amp;lt;math&amp;gt;g(m, n) = \left\lbrace\begin{matrix} 42 &amp;amp; m = 0 \or n=0 \\ g(m-1, n-1) + g(m, n-1) &amp;amp; m &amp;gt; 0 \and n &amp;gt; 0 \end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine nicht-rekursive Java-Methode an, die g(m,n) für m, n e N berechnet. Die Methode soll dafür polynomielle Laufzeit benötigen&lt;br /&gt;
&lt;br /&gt;
b) Kleinste worst-case-Laufzeitklasse angeben:&lt;br /&gt;
&lt;br /&gt;
O( .... )&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 7: Geld wechseln (&amp;gt;=3 (6?) Punkte) ==&lt;br /&gt;
Gegeben ist ein Betrag, welcher durch möglichst wenige Geldstücke der Grössen { 200, 100, 50, 20, 10, 5, 2, 1 } dargestellt werden werden soll.&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine günstige Kodierung für die Geldstücke an&lt;br /&gt;
&lt;br /&gt;
b) Geben Sie eine Zielfunktion und eine Optimierungsrichtung (max/min) an.&lt;br /&gt;
&lt;br /&gt;
c) Geben Sie ein Greedy-Verfahren zur Lösung des Optimierungsproblems an (als Pseudocode oder verbal).&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
[[Informatik 4 (StuPO90)/Gedächtnisprotokoll Klausur SoSe 2007]]&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10204</id>
		<title>Informatik 3/Gedächtnisprotokoll Klausur SS07</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10204"/>
		<updated>2007-07-29T14:59:54Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: /* Aufgabe 3: Suchbäume (&amp;gt;=8 Punkte) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Aufgabe 1: Multiple Choice (10(?) Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Kreuzen Sie jeweils wahr bzw. falsch an:&lt;br /&gt;
* ..&lt;br /&gt;
* Traversierung mit Breitensuche erzeugt einen aufspannenden Baum.&lt;br /&gt;
* Die Höhe eines binären Suchbaumes ist immer um 1 größer, als das Maximum der Höhen seiner Teilbäume.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Backtrackingalgorithmus finden der dieses löst.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Greedy-algorithmus finden der dieses löst.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 2: HashTables (&amp;gt;=5 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Hashtabelle der Größe 4.&lt;br /&gt;
*Hashfunktion: h(k) = k mod 4&lt;br /&gt;
*Kollisonsauflösung&amp;quot;double hashing&amp;quot; a(k) = k+2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Vier Werte mit Schlüsseln einfügen und Kollisionen zählen.&lt;br /&gt;
(A,5) (B,11) (C,9) (D,14)&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1, 3, 1 , 3 .. (kann nicht eingefügt werden)&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
0 blieb leer.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Andere Lösung:&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1,0&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ist die Anzahl der Kollisionen bei double hashing abhängig von der Reihenfolge in der die Elemente eingefügt werden? Begründung, ggf. Beispiel.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 3: Suchbäume (&amp;gt;=10 Punkte) ==&lt;br /&gt;
&#039;&#039;&#039;AVL-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Löschen aus AVL-Baum&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rot/Schwarz-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen in RS-Baum&lt;br /&gt;
*Java-Programm schreiben für Höhenberechnung eines Rot-Schwarz-Baumes: int getBlackHeight(Node root)&lt;br /&gt;
** Rot-Schwarz-Baum als gültig vorausgesetzt.&lt;br /&gt;
** Vorgegebene Implementation:&lt;br /&gt;
*** boolean isRed(Node node);&lt;br /&gt;
*** boolean isBlack(Node node);&lt;br /&gt;
*** class Node{ int color; Node left; Node right; }&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;B-Baum&#039;&#039;&#039;&lt;br /&gt;
* Element in B-Baum einfügen.&lt;br /&gt;
[[Bild:Info3-ss2007-3-btree.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 4: Graphen (&amp;gt;=9 Punkte) ==&lt;br /&gt;
a) Baue eine Adjazenzmatrix zu folgendem Graphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4a.png]]&lt;br /&gt;
&lt;br /&gt;
b) Dijkstra auf folgendem Graph ausführen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4b.png]]&lt;br /&gt;
&lt;br /&gt;
c) Definiere (formal oder als Text) den Begriff &amp;quot;aufspannender Baum&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
d) Führe union(D,F) auf folgender, als Wald realisierter disjunkter Menge aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4d.png]]&lt;br /&gt;
&lt;br /&gt;
e) Erstelle den Restflussgraphen zu folgendem Flussgraphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4e.png]]&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 5: Übungsorganisation (&amp;gt;=3 Punkte) ==&lt;br /&gt;
Es herrscht grosser Andrang bei der Sprechstunde. Keiner der wartenden Studierenden erinnert sich an die genaue Ankunftsreihenfolge. Einige erinnern sich jedoch noch an die Leute die bereits warteten. Es soll eine ungefähre Ankunftsreihenfolge bestimmt werden.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Name      || wartete bereits&lt;br /&gt;
|-&lt;br /&gt;
| Annett    || Daniel, Edeltraut&lt;br /&gt;
|-&lt;br /&gt;
| Bert      || Anett, Daniel, Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Claudia   || -&lt;br /&gt;
|-&lt;br /&gt;
| Daniel    || Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Edeltraut || Claudia&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
a) Erstelle einen Graph aus den Erinnerungen der wartenden Studierenden.&lt;br /&gt;
&lt;br /&gt;
b) Nun soll die ungefähre Reihenfolge der Studierenden berechnet werden.&lt;br /&gt;
&lt;br /&gt;
Algorithmus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ablauf:&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 6: Dynamisches Programmieren (&amp;gt;=5 (6?) Punkte) ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-6.png]]&lt;br /&gt;
&amp;lt;!-- Das Bild wurde gerendert mit freundlicher, allerdings unwissender, Unterstützung der deutschen Wikipedia.&lt;br /&gt;
Hier der TeX-Quellcode des obenstehenden Bildes:&lt;br /&gt;
&amp;lt;math&amp;gt;g(m, n) = \left\lbrace\begin{matrix} 42 &amp;amp; m = 0 \or n=0 \\ g(m-1, n-1) + g(m, n-1) &amp;amp; m &amp;gt; 0 \and n &amp;gt; 0 \end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine nicht-rekursive Java-Methode an, die g(m,n) für m, n e N berechnet. Die Methode soll dafür polynomielle Laufzeit benötigen&lt;br /&gt;
&lt;br /&gt;
b) Kleinste worst-case-Laufzeitklasse angeben:&lt;br /&gt;
&lt;br /&gt;
O( .... )&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 7: Geld wechseln (&amp;gt;=3 (6?) Punkte) ==&lt;br /&gt;
Gegeben ist ein Betrag, welcher durch möglichst wenige Geldstücke der Grössen { 200, 100, 50, 20, 10, 5, 2, 1 } dargestellt werden werden soll.&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine günstige Kodierung für die Geldstücke an&lt;br /&gt;
&lt;br /&gt;
b) Geben Sie eine Zielfunktion und eine Optimierungsrichtung (max/min) an.&lt;br /&gt;
&lt;br /&gt;
c) Geben Sie ein Greedy-Verfahren zur Lösung des Optimierungsproblems an (als Pseudocode oder verbal).&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
[[Informatik 4 (StuPO90)/Gedächtnisprotokoll Klausur SoSe 2007]]&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10203</id>
		<title>Informatik 3/Gedächtnisprotokoll Klausur SS07</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10203"/>
		<updated>2007-07-29T14:59:48Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: /* Aufgabe 2: HashTables (&amp;gt;=4 Punkte) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Aufgabe 1: Multiple Choice (10(?) Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Kreuzen Sie jeweils wahr bzw. falsch an:&lt;br /&gt;
* ..&lt;br /&gt;
* Traversierung mit Breitensuche erzeugt einen aufspannenden Baum.&lt;br /&gt;
* Die Höhe eines binären Suchbaumes ist immer um 1 größer, als das Maximum der Höhen seiner Teilbäume.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Backtrackingalgorithmus finden der dieses löst.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Greedy-algorithmus finden der dieses löst.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 2: HashTables (&amp;gt;=5 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Hashtabelle der Größe 4.&lt;br /&gt;
*Hashfunktion: h(k) = k mod 4&lt;br /&gt;
*Kollisonsauflösung&amp;quot;double hashing&amp;quot; a(k) = k+2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Vier Werte mit Schlüsseln einfügen und Kollisionen zählen.&lt;br /&gt;
(A,5) (B,11) (C,9) (D,14)&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1, 3, 1 , 3 .. (kann nicht eingefügt werden)&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
0 blieb leer.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Andere Lösung:&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1,0&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ist die Anzahl der Kollisionen bei double hashing abhängig von der Reihenfolge in der die Elemente eingefügt werden? Begründung, ggf. Beispiel.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 3: Suchbäume (&amp;gt;=8 Punkte) ==&lt;br /&gt;
&#039;&#039;&#039;AVL-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Löschen aus AVL-Baum&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rot/Schwarz-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen in RS-Baum&lt;br /&gt;
*Java-Programm schreiben für Höhenberechnung eines Rot-Schwarz-Baumes: int getBlackHeight(Node root)&lt;br /&gt;
** Rot-Schwarz-Baum als gültig vorausgesetzt.&lt;br /&gt;
** Vorgegebene Implementation:&lt;br /&gt;
*** boolean isRed(Node node);&lt;br /&gt;
*** boolean isBlack(Node node);&lt;br /&gt;
*** class Node{ int color; Node left; Node right; }&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;B-Baum&#039;&#039;&#039;&lt;br /&gt;
* Element in B-Baum einfügen.&lt;br /&gt;
[[Bild:Info3-ss2007-3-btree.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 4: Graphen (&amp;gt;=9 Punkte) ==&lt;br /&gt;
a) Baue eine Adjazenzmatrix zu folgendem Graphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4a.png]]&lt;br /&gt;
&lt;br /&gt;
b) Dijkstra auf folgendem Graph ausführen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4b.png]]&lt;br /&gt;
&lt;br /&gt;
c) Definiere (formal oder als Text) den Begriff &amp;quot;aufspannender Baum&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
d) Führe union(D,F) auf folgender, als Wald realisierter disjunkter Menge aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4d.png]]&lt;br /&gt;
&lt;br /&gt;
e) Erstelle den Restflussgraphen zu folgendem Flussgraphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4e.png]]&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 5: Übungsorganisation (&amp;gt;=3 Punkte) ==&lt;br /&gt;
Es herrscht grosser Andrang bei der Sprechstunde. Keiner der wartenden Studierenden erinnert sich an die genaue Ankunftsreihenfolge. Einige erinnern sich jedoch noch an die Leute die bereits warteten. Es soll eine ungefähre Ankunftsreihenfolge bestimmt werden.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Name      || wartete bereits&lt;br /&gt;
|-&lt;br /&gt;
| Annett    || Daniel, Edeltraut&lt;br /&gt;
|-&lt;br /&gt;
| Bert      || Anett, Daniel, Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Claudia   || -&lt;br /&gt;
|-&lt;br /&gt;
| Daniel    || Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Edeltraut || Claudia&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
a) Erstelle einen Graph aus den Erinnerungen der wartenden Studierenden.&lt;br /&gt;
&lt;br /&gt;
b) Nun soll die ungefähre Reihenfolge der Studierenden berechnet werden.&lt;br /&gt;
&lt;br /&gt;
Algorithmus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ablauf:&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 6: Dynamisches Programmieren (&amp;gt;=5 (6?) Punkte) ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-6.png]]&lt;br /&gt;
&amp;lt;!-- Das Bild wurde gerendert mit freundlicher, allerdings unwissender, Unterstützung der deutschen Wikipedia.&lt;br /&gt;
Hier der TeX-Quellcode des obenstehenden Bildes:&lt;br /&gt;
&amp;lt;math&amp;gt;g(m, n) = \left\lbrace\begin{matrix} 42 &amp;amp; m = 0 \or n=0 \\ g(m-1, n-1) + g(m, n-1) &amp;amp; m &amp;gt; 0 \and n &amp;gt; 0 \end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine nicht-rekursive Java-Methode an, die g(m,n) für m, n e N berechnet. Die Methode soll dafür polynomielle Laufzeit benötigen&lt;br /&gt;
&lt;br /&gt;
b) Kleinste worst-case-Laufzeitklasse angeben:&lt;br /&gt;
&lt;br /&gt;
O( .... )&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 7: Geld wechseln (&amp;gt;=3 (6?) Punkte) ==&lt;br /&gt;
Gegeben ist ein Betrag, welcher durch möglichst wenige Geldstücke der Grössen { 200, 100, 50, 20, 10, 5, 2, 1 } dargestellt werden werden soll.&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine günstige Kodierung für die Geldstücke an&lt;br /&gt;
&lt;br /&gt;
b) Geben Sie eine Zielfunktion und eine Optimierungsrichtung (max/min) an.&lt;br /&gt;
&lt;br /&gt;
c) Geben Sie ein Greedy-Verfahren zur Lösung des Optimierungsproblems an (als Pseudocode oder verbal).&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
[[Informatik 4 (StuPO90)/Gedächtnisprotokoll Klausur SoSe 2007]]&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Informatik_4_(StuPO90)/Ged%C3%A4chtnisprotokoll_Klausur_SoSe_2007&amp;diff=10165</id>
		<title>Informatik 4 (StuPO90)/Gedächtnisprotokoll Klausur SoSe 2007</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Informatik_4_(StuPO90)/Ged%C3%A4chtnisprotokoll_Klausur_SoSe_2007&amp;diff=10165"/>
		<updated>2007-07-28T16:57:24Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: das mit den 50 punkten entfernt, wiki-syntax angewendet und Verweis auf den Informatik-3-Teil eingebaut&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Aufgabe 1: Kurze Fragen (10 Punkte) ==&lt;br /&gt;
* Unterschiede und Vorteile von synchroner und asynchroner Nachrichtenübertragung?&lt;br /&gt;
** blockierend / nicht blockieren vs. Nachricht geht evtl. verloren&lt;br /&gt;
&lt;br /&gt;
* Vorteile von leichtgewichtigen Prozessen&lt;br /&gt;
** schnellerer Prozesswechsel, da gemeinsamer Adressraum&lt;br /&gt;
** einfache Implementierung&lt;br /&gt;
** eigener Scheduler ?&lt;br /&gt;
&lt;br /&gt;
* Erkläre die zwei Stufen von Interruptbehandlung. Grund der Zweistufigkeit?&lt;br /&gt;
** Stufe 1: nicht unterbrechbar, nur nötigste Behandlung (speichern).&lt;br /&gt;
** Stufe 2: abschließende Behandlung des interrupts... &lt;br /&gt;
** Grund: Nicht unterbrechbarer Zeitraum mötlichst klein, damit keine/wenige Interrupts verloren gehen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 2: Assembler (13 Punkte) ==&lt;br /&gt;
Programmieren sie in Assembler die Funktion _binom(int *a, int *b)&lt;br /&gt;
&lt;br /&gt;
*Berechne a²+2ab+b² (!) und speichere das ergebnis in *b und gib 0 bei geglückter Operation zurück.&lt;br /&gt;
*Falls a&amp;lt;0 oder a&amp;gt;32767 oder b&amp;gt;32767 oder b&amp;lt;-32768 gib sofort -1 zurück.&lt;br /&gt;
*Bei der addition der werte a², b² und 2ab kann es zum Überlauf kommen.&lt;br /&gt;
**Falls das passiert gib ebenfalls -1 zurück.(Rückgaben erfolgen wie üblich im Register D0)&lt;br /&gt;
*Schreibe desweiteren eine Subroutine, die das Quadrat einer Zahl berechnet (geht in 2 Zeilen).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 3: Semaphoren (10 Punkte) ==&lt;br /&gt;
Elefanten und Mäuse gehen auf ein Schiff.&lt;br /&gt;
Dabei sollen immer möglichst doppelt so viele Mäuse wie Elefanten auf dem Schiff sein.&lt;br /&gt;
Nur eine Differenz von 1 ist erlaubt..&lt;br /&gt;
&lt;br /&gt;
sei n die Anzahl der Elefanten und m die Anzahl der Mäuse.&lt;br /&gt;
&lt;br /&gt;
wenn n Elefanten auf dem Schiff sind, dann muss beachtet werden:&lt;br /&gt;
&lt;br /&gt;
*wenn n &amp;gt; 2m ist, dann muss eine Maus an Bord kommen&lt;br /&gt;
*wenn n &amp;lt; 2m ist, dann muss ein Elefant an Bord kommen&lt;br /&gt;
*wenn n = 2m ist, dann muss man schauen:&lt;br /&gt;
*um das Gleichgewicht zu erhalten können an Bord kommen:&lt;br /&gt;
:Elefant, Maus, Maus oder Maus, Elefant, Maus, damit keine Verletzung der ersten 2 Punkte zustandekommt.&lt;br /&gt;
&lt;br /&gt;
die Aufgabe hat echt reingehauen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 4: Monitore (12 Punkte) ==&lt;br /&gt;
In einem Schwimmbad gibt es ein Schwimmbecken.&lt;br /&gt;
Es gibt Turmspringer, Schwimmer und den Bademeister.&lt;br /&gt;
Synchronisiere mit den Folgenden Regeln über Monitore:&lt;br /&gt;
*Turmspringer und Schwimmer dürfen das Schwimmbecken nicht gleichzeitig benutzen.&lt;br /&gt;
*Wenn kein Bademeister anwesend ist, darf kein Schwimmer ins Becken.&lt;br /&gt;
*Turmspringer dürfen auch ins Becken springen, wenn Schwimmer warten, weil kein Bademeister da ist.&lt;br /&gt;
*Wenn ein Bademeister anwesend ist, haben die Schwimmer vor den Turmspringern Vorrang.&lt;br /&gt;
*Der Bademeister darf erst Feierabend machen (weggehen), wenn kein Schwimmer mehr im Becken ist&lt;br /&gt;
*Der Bademeister darf insbesondere auch dann gehen, wenn noch Schwimmer am Beckenrand warten (voraussgesetzt, es befindet sich kein Schwimmer im Becken).&lt;br /&gt;
*Es kann davon ausgegangen werden, dass es maximal einen Bademeister gibt.&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 5: Betriebsmittelvergabe (5 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Die Betriebsmittel werden in der Aufgabe nach preämptiver Planung nach Laufzeit&lt;br /&gt;
vergeben, gegeben sind folgende Prozesse:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info4-ss2007-5.png]]&lt;br /&gt;
&lt;br /&gt;
Geben Sie für die jewelige Zeit die Vergabereihenfolge für die Prozesse an:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
-----------------------------------&lt;br /&gt;
1 2 3 4 5 6 7 8 9 10&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Geben Sie zusätzlich die zeitlichen Verläufe der Inhalte der Warte-Queues an&lt;br /&gt;
und berechnen Sie die mittlere Wartezeit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
[[Informatik 3/Gedächtnisprotokoll Klausur SS07]]&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=FreitagsrundenWiki:Bearbeitungshilfe&amp;diff=10223</id>
		<title>FreitagsrundenWiki:Bearbeitungshilfe</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=FreitagsrundenWiki:Bearbeitungshilfe&amp;diff=10223"/>
		<updated>2007-07-28T16:55:33Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://de.wikipedia.org/wiki/Hilfe:Bearbeitungshilfe Bearbeitungshilfe der deutschen Wikipedia]&lt;br /&gt;
&lt;br /&gt;
[http://meta.wikimedia.org/wiki/Help:Contents#For_editors englische Bearbeitungshilfe bei metawiki]&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10202</id>
		<title>Informatik 3/Gedächtnisprotokoll Klausur SS07</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10202"/>
		<updated>2007-07-28T16:45:16Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: /* Aufgabe 7: Geld wechseln (&amp;gt;=6(?) Punkte) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Aufgabe 1: Multiple Choice (10(?) Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Kreuzen Sie jeweils wahr bzw. falsch an:&lt;br /&gt;
* ..&lt;br /&gt;
* Traversierung mit Breitensuche erzeugt einen aufspannenden Baum.&lt;br /&gt;
* Die Höhe eines binären Suchbaumes ist immer um 1 größer, als das Maximum der Höhen seiner Teilbäume.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Backtrackingalgorithmus finden der dieses löst.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Greedy-algorithmus finden der dieses löst.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 2: HashTables (&amp;gt;=4 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Hashtabelle der Größe 4.&lt;br /&gt;
*Hashfunktion: h(k) = k mod 4&lt;br /&gt;
*Kollisonsauflösung&amp;quot;double hashing&amp;quot; a(k) = k+2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Vier Werte mit Schlüsseln einfügen und Kollisionen zählen.&lt;br /&gt;
(A,5) (B,11) (C,9) (D,14)&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1, 3, 1 , 3 .. (kann nicht eingefügt werden)&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
0 blieb leer.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Andere Lösung:&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1,0&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ist die Anzahl der Kollisionen bei double hashing abhängig von der Reihenfolge in der die Elemente eingefügt werden? Begründung, ggf. Beispiel.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 3: Suchbäume (&amp;gt;=8 Punkte) ==&lt;br /&gt;
&#039;&#039;&#039;AVL-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Löschen aus AVL-Baum&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rot/Schwarz-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen in RS-Baum&lt;br /&gt;
*Java-Programm schreiben für Höhenberechnung eines Rot-Schwarz-Baumes: int getBlackHeight(Node root)&lt;br /&gt;
** Rot-Schwarz-Baum als gültig vorausgesetzt.&lt;br /&gt;
** Vorgegebene Implementation:&lt;br /&gt;
*** boolean isRed(Node node);&lt;br /&gt;
*** boolean isBlack(Node node);&lt;br /&gt;
*** class Node{ int color; Node left; Node right; }&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;B-Baum&#039;&#039;&#039;&lt;br /&gt;
* Element in B-Baum einfügen.&lt;br /&gt;
[[Bild:Info3-ss2007-3-btree.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 4: Graphen (&amp;gt;=9 Punkte) ==&lt;br /&gt;
a) Baue eine Adjazenzmatrix zu folgendem Graphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4a.png]]&lt;br /&gt;
&lt;br /&gt;
b) Dijkstra auf folgendem Graph ausführen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4b.png]]&lt;br /&gt;
&lt;br /&gt;
c) Definiere (formal oder als Text) den Begriff &amp;quot;aufspannender Baum&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
d) Führe union(D,F) auf folgender, als Wald realisierter disjunkter Menge aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4d.png]]&lt;br /&gt;
&lt;br /&gt;
e) Erstelle den Restflussgraphen zu folgendem Flussgraphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4e.png]]&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 5: Übungsorganisation (&amp;gt;=3 Punkte) ==&lt;br /&gt;
Es herrscht grosser Andrang bei der Sprechstunde. Keiner der wartenden Studierenden erinnert sich an die genaue Ankunftsreihenfolge. Einige erinnern sich jedoch noch an die Leute die bereits warteten. Es soll eine ungefähre Ankunftsreihenfolge bestimmt werden.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Name      || wartete bereits&lt;br /&gt;
|-&lt;br /&gt;
| Annett    || Daniel, Edeltraut&lt;br /&gt;
|-&lt;br /&gt;
| Bert      || Anett, Daniel, Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Claudia   || -&lt;br /&gt;
|-&lt;br /&gt;
| Daniel    || Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Edeltraut || Claudia&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
a) Erstelle einen Graph aus den Erinnerungen der wartenden Studierenden.&lt;br /&gt;
&lt;br /&gt;
b) Nun soll die ungefähre Reihenfolge der Studierenden berechnet werden.&lt;br /&gt;
&lt;br /&gt;
Algorithmus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ablauf:&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 6: Dynamisches Programmieren (&amp;gt;=5 (6?) Punkte) ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-6.png]]&lt;br /&gt;
&amp;lt;!-- Das Bild wurde gerendert mit freundlicher, allerdings unwissender, Unterstützung der deutschen Wikipedia.&lt;br /&gt;
Hier der TeX-Quellcode des obenstehenden Bildes:&lt;br /&gt;
&amp;lt;math&amp;gt;g(m, n) = \left\lbrace\begin{matrix} 42 &amp;amp; m = 0 \or n=0 \\ g(m-1, n-1) + g(m, n-1) &amp;amp; m &amp;gt; 0 \and n &amp;gt; 0 \end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine nicht-rekursive Java-Methode an, die g(m,n) für m, n e N berechnet. Die Methode soll dafür polynomielle Laufzeit benötigen&lt;br /&gt;
&lt;br /&gt;
b) Kleinste worst-case-Laufzeitklasse angeben:&lt;br /&gt;
&lt;br /&gt;
O( .... )&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 7: Geld wechseln (&amp;gt;=3 (6?) Punkte) ==&lt;br /&gt;
Gegeben ist ein Betrag, welcher durch möglichst wenige Geldstücke der Grössen { 200, 100, 50, 20, 10, 5, 2, 1 } dargestellt werden werden soll.&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine günstige Kodierung für die Geldstücke an&lt;br /&gt;
&lt;br /&gt;
b) Geben Sie eine Zielfunktion und eine Optimierungsrichtung (max/min) an.&lt;br /&gt;
&lt;br /&gt;
c) Geben Sie ein Greedy-Verfahren zur Lösung des Optimierungsproblems an (als Pseudocode oder verbal).&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
[[Informatik 4 (StuPO90)/Gedächtnisprotokoll Klausur SoSe 2007]]&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10201</id>
		<title>Informatik 3/Gedächtnisprotokoll Klausur SS07</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10201"/>
		<updated>2007-07-28T16:45:02Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: /* Aufgabe 6: Dynamisches Programmieren (&amp;gt;=6(?) Punkte) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Aufgabe 1: Multiple Choice (10(?) Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Kreuzen Sie jeweils wahr bzw. falsch an:&lt;br /&gt;
* ..&lt;br /&gt;
* Traversierung mit Breitensuche erzeugt einen aufspannenden Baum.&lt;br /&gt;
* Die Höhe eines binären Suchbaumes ist immer um 1 größer, als das Maximum der Höhen seiner Teilbäume.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Backtrackingalgorithmus finden der dieses löst.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Greedy-algorithmus finden der dieses löst.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 2: HashTables (&amp;gt;=4 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Hashtabelle der Größe 4.&lt;br /&gt;
*Hashfunktion: h(k) = k mod 4&lt;br /&gt;
*Kollisonsauflösung&amp;quot;double hashing&amp;quot; a(k) = k+2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Vier Werte mit Schlüsseln einfügen und Kollisionen zählen.&lt;br /&gt;
(A,5) (B,11) (C,9) (D,14)&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1, 3, 1 , 3 .. (kann nicht eingefügt werden)&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
0 blieb leer.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Andere Lösung:&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1,0&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ist die Anzahl der Kollisionen bei double hashing abhängig von der Reihenfolge in der die Elemente eingefügt werden? Begründung, ggf. Beispiel.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 3: Suchbäume (&amp;gt;=8 Punkte) ==&lt;br /&gt;
&#039;&#039;&#039;AVL-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Löschen aus AVL-Baum&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rot/Schwarz-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen in RS-Baum&lt;br /&gt;
*Java-Programm schreiben für Höhenberechnung eines Rot-Schwarz-Baumes: int getBlackHeight(Node root)&lt;br /&gt;
** Rot-Schwarz-Baum als gültig vorausgesetzt.&lt;br /&gt;
** Vorgegebene Implementation:&lt;br /&gt;
*** boolean isRed(Node node);&lt;br /&gt;
*** boolean isBlack(Node node);&lt;br /&gt;
*** class Node{ int color; Node left; Node right; }&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;B-Baum&#039;&#039;&#039;&lt;br /&gt;
* Element in B-Baum einfügen.&lt;br /&gt;
[[Bild:Info3-ss2007-3-btree.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 4: Graphen (&amp;gt;=9 Punkte) ==&lt;br /&gt;
a) Baue eine Adjazenzmatrix zu folgendem Graphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4a.png]]&lt;br /&gt;
&lt;br /&gt;
b) Dijkstra auf folgendem Graph ausführen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4b.png]]&lt;br /&gt;
&lt;br /&gt;
c) Definiere (formal oder als Text) den Begriff &amp;quot;aufspannender Baum&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
d) Führe union(D,F) auf folgender, als Wald realisierter disjunkter Menge aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4d.png]]&lt;br /&gt;
&lt;br /&gt;
e) Erstelle den Restflussgraphen zu folgendem Flussgraphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4e.png]]&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 5: Übungsorganisation (&amp;gt;=3 Punkte) ==&lt;br /&gt;
Es herrscht grosser Andrang bei der Sprechstunde. Keiner der wartenden Studierenden erinnert sich an die genaue Ankunftsreihenfolge. Einige erinnern sich jedoch noch an die Leute die bereits warteten. Es soll eine ungefähre Ankunftsreihenfolge bestimmt werden.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Name      || wartete bereits&lt;br /&gt;
|-&lt;br /&gt;
| Annett    || Daniel, Edeltraut&lt;br /&gt;
|-&lt;br /&gt;
| Bert      || Anett, Daniel, Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Claudia   || -&lt;br /&gt;
|-&lt;br /&gt;
| Daniel    || Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Edeltraut || Claudia&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
a) Erstelle einen Graph aus den Erinnerungen der wartenden Studierenden.&lt;br /&gt;
&lt;br /&gt;
b) Nun soll die ungefähre Reihenfolge der Studierenden berechnet werden.&lt;br /&gt;
&lt;br /&gt;
Algorithmus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ablauf:&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 6: Dynamisches Programmieren (&amp;gt;=5 (6?) Punkte) ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-6.png]]&lt;br /&gt;
&amp;lt;!-- Das Bild wurde gerendert mit freundlicher, allerdings unwissender, Unterstützung der deutschen Wikipedia.&lt;br /&gt;
Hier der TeX-Quellcode des obenstehenden Bildes:&lt;br /&gt;
&amp;lt;math&amp;gt;g(m, n) = \left\lbrace\begin{matrix} 42 &amp;amp; m = 0 \or n=0 \\ g(m-1, n-1) + g(m, n-1) &amp;amp; m &amp;gt; 0 \and n &amp;gt; 0 \end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine nicht-rekursive Java-Methode an, die g(m,n) für m, n e N berechnet. Die Methode soll dafür polynomielle Laufzeit benötigen&lt;br /&gt;
&lt;br /&gt;
b) Kleinste worst-case-Laufzeitklasse angeben:&lt;br /&gt;
&lt;br /&gt;
O( .... )&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 7: Geld wechseln (&amp;gt;=6(?) Punkte) ==&lt;br /&gt;
Gegeben ist ein Betrag, welcher durch möglichst wenige Geldstücke der Grössen { 200, 100, 50, 20, 10, 5, 2, 1 } dargestellt werden werden soll.&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine günstige Kodierung für die Geldstücke an&lt;br /&gt;
&lt;br /&gt;
b) Geben Sie eine Zielfunktion und eine Optimierungsrichtung (max/min) an.&lt;br /&gt;
&lt;br /&gt;
c) Geben Sie ein Greedy-Verfahren zur Lösung des Optimierungsproblems an (als Pseudocode oder verbal).&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
[[Informatik 4 (StuPO90)/Gedächtnisprotokoll Klausur SoSe 2007]]&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10200</id>
		<title>Informatik 3/Gedächtnisprotokoll Klausur SS07</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10200"/>
		<updated>2007-07-28T16:44:46Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: /* Aufgabe 6: Dynamisches Programmieren (&amp;gt;=6 Punkte) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Aufgabe 1: Multiple Choice (10(?) Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Kreuzen Sie jeweils wahr bzw. falsch an:&lt;br /&gt;
* ..&lt;br /&gt;
* Traversierung mit Breitensuche erzeugt einen aufspannenden Baum.&lt;br /&gt;
* Die Höhe eines binären Suchbaumes ist immer um 1 größer, als das Maximum der Höhen seiner Teilbäume.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Backtrackingalgorithmus finden der dieses löst.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Greedy-algorithmus finden der dieses löst.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 2: HashTables (&amp;gt;=4 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Hashtabelle der Größe 4.&lt;br /&gt;
*Hashfunktion: h(k) = k mod 4&lt;br /&gt;
*Kollisonsauflösung&amp;quot;double hashing&amp;quot; a(k) = k+2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Vier Werte mit Schlüsseln einfügen und Kollisionen zählen.&lt;br /&gt;
(A,5) (B,11) (C,9) (D,14)&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1, 3, 1 , 3 .. (kann nicht eingefügt werden)&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
0 blieb leer.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Andere Lösung:&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1,0&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ist die Anzahl der Kollisionen bei double hashing abhängig von der Reihenfolge in der die Elemente eingefügt werden? Begründung, ggf. Beispiel.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 3: Suchbäume (&amp;gt;=8 Punkte) ==&lt;br /&gt;
&#039;&#039;&#039;AVL-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Löschen aus AVL-Baum&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rot/Schwarz-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen in RS-Baum&lt;br /&gt;
*Java-Programm schreiben für Höhenberechnung eines Rot-Schwarz-Baumes: int getBlackHeight(Node root)&lt;br /&gt;
** Rot-Schwarz-Baum als gültig vorausgesetzt.&lt;br /&gt;
** Vorgegebene Implementation:&lt;br /&gt;
*** boolean isRed(Node node);&lt;br /&gt;
*** boolean isBlack(Node node);&lt;br /&gt;
*** class Node{ int color; Node left; Node right; }&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;B-Baum&#039;&#039;&#039;&lt;br /&gt;
* Element in B-Baum einfügen.&lt;br /&gt;
[[Bild:Info3-ss2007-3-btree.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 4: Graphen (&amp;gt;=9 Punkte) ==&lt;br /&gt;
a) Baue eine Adjazenzmatrix zu folgendem Graphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4a.png]]&lt;br /&gt;
&lt;br /&gt;
b) Dijkstra auf folgendem Graph ausführen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4b.png]]&lt;br /&gt;
&lt;br /&gt;
c) Definiere (formal oder als Text) den Begriff &amp;quot;aufspannender Baum&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
d) Führe union(D,F) auf folgender, als Wald realisierter disjunkter Menge aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4d.png]]&lt;br /&gt;
&lt;br /&gt;
e) Erstelle den Restflussgraphen zu folgendem Flussgraphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4e.png]]&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 5: Übungsorganisation (&amp;gt;=3 Punkte) ==&lt;br /&gt;
Es herrscht grosser Andrang bei der Sprechstunde. Keiner der wartenden Studierenden erinnert sich an die genaue Ankunftsreihenfolge. Einige erinnern sich jedoch noch an die Leute die bereits warteten. Es soll eine ungefähre Ankunftsreihenfolge bestimmt werden.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Name      || wartete bereits&lt;br /&gt;
|-&lt;br /&gt;
| Annett    || Daniel, Edeltraut&lt;br /&gt;
|-&lt;br /&gt;
| Bert      || Anett, Daniel, Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Claudia   || -&lt;br /&gt;
|-&lt;br /&gt;
| Daniel    || Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Edeltraut || Claudia&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
a) Erstelle einen Graph aus den Erinnerungen der wartenden Studierenden.&lt;br /&gt;
&lt;br /&gt;
b) Nun soll die ungefähre Reihenfolge der Studierenden berechnet werden.&lt;br /&gt;
&lt;br /&gt;
Algorithmus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ablauf:&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 6: Dynamisches Programmieren (&amp;gt;=6(?) Punkte) ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-6.png]]&lt;br /&gt;
&amp;lt;!-- Das Bild wurde gerendert mit freundlicher, allerdings unwissender, Unterstützung der deutschen Wikipedia.&lt;br /&gt;
Hier der TeX-Quellcode des obenstehenden Bildes:&lt;br /&gt;
&amp;lt;math&amp;gt;g(m, n) = \left\lbrace\begin{matrix} 42 &amp;amp; m = 0 \or n=0 \\ g(m-1, n-1) + g(m, n-1) &amp;amp; m &amp;gt; 0 \and n &amp;gt; 0 \end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine nicht-rekursive Java-Methode an, die g(m,n) für m, n e N berechnet. Die Methode soll dafür polynomielle Laufzeit benötigen&lt;br /&gt;
&lt;br /&gt;
b) Kleinste worst-case-Laufzeitklasse angeben:&lt;br /&gt;
&lt;br /&gt;
O( .... )&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 7: Geld wechseln (&amp;gt;=6(?) Punkte) ==&lt;br /&gt;
Gegeben ist ein Betrag, welcher durch möglichst wenige Geldstücke der Grössen { 200, 100, 50, 20, 10, 5, 2, 1 } dargestellt werden werden soll.&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine günstige Kodierung für die Geldstücke an&lt;br /&gt;
&lt;br /&gt;
b) Geben Sie eine Zielfunktion und eine Optimierungsrichtung (max/min) an.&lt;br /&gt;
&lt;br /&gt;
c) Geben Sie ein Greedy-Verfahren zur Lösung des Optimierungsproblems an (als Pseudocode oder verbal).&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
[[Informatik 4 (StuPO90)/Gedächtnisprotokoll Klausur SoSe 2007]]&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10199</id>
		<title>Informatik 3/Gedächtnisprotokoll Klausur SS07</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10199"/>
		<updated>2007-07-28T16:44:35Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: /* Aufgabe 7: Geld wechseln (&amp;gt;=3 Punkte) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Aufgabe 1: Multiple Choice (10(?) Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Kreuzen Sie jeweils wahr bzw. falsch an:&lt;br /&gt;
* ..&lt;br /&gt;
* Traversierung mit Breitensuche erzeugt einen aufspannenden Baum.&lt;br /&gt;
* Die Höhe eines binären Suchbaumes ist immer um 1 größer, als das Maximum der Höhen seiner Teilbäume.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Backtrackingalgorithmus finden der dieses löst.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Greedy-algorithmus finden der dieses löst.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 2: HashTables (&amp;gt;=4 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Hashtabelle der Größe 4.&lt;br /&gt;
*Hashfunktion: h(k) = k mod 4&lt;br /&gt;
*Kollisonsauflösung&amp;quot;double hashing&amp;quot; a(k) = k+2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Vier Werte mit Schlüsseln einfügen und Kollisionen zählen.&lt;br /&gt;
(A,5) (B,11) (C,9) (D,14)&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1, 3, 1 , 3 .. (kann nicht eingefügt werden)&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
0 blieb leer.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Andere Lösung:&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1,0&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ist die Anzahl der Kollisionen bei double hashing abhängig von der Reihenfolge in der die Elemente eingefügt werden? Begründung, ggf. Beispiel.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 3: Suchbäume (&amp;gt;=8 Punkte) ==&lt;br /&gt;
&#039;&#039;&#039;AVL-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Löschen aus AVL-Baum&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rot/Schwarz-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen in RS-Baum&lt;br /&gt;
*Java-Programm schreiben für Höhenberechnung eines Rot-Schwarz-Baumes: int getBlackHeight(Node root)&lt;br /&gt;
** Rot-Schwarz-Baum als gültig vorausgesetzt.&lt;br /&gt;
** Vorgegebene Implementation:&lt;br /&gt;
*** boolean isRed(Node node);&lt;br /&gt;
*** boolean isBlack(Node node);&lt;br /&gt;
*** class Node{ int color; Node left; Node right; }&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;B-Baum&#039;&#039;&#039;&lt;br /&gt;
* Element in B-Baum einfügen.&lt;br /&gt;
[[Bild:Info3-ss2007-3-btree.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 4: Graphen (&amp;gt;=9 Punkte) ==&lt;br /&gt;
a) Baue eine Adjazenzmatrix zu folgendem Graphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4a.png]]&lt;br /&gt;
&lt;br /&gt;
b) Dijkstra auf folgendem Graph ausführen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4b.png]]&lt;br /&gt;
&lt;br /&gt;
c) Definiere (formal oder als Text) den Begriff &amp;quot;aufspannender Baum&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
d) Führe union(D,F) auf folgender, als Wald realisierter disjunkter Menge aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4d.png]]&lt;br /&gt;
&lt;br /&gt;
e) Erstelle den Restflussgraphen zu folgendem Flussgraphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4e.png]]&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 5: Übungsorganisation (&amp;gt;=3 Punkte) ==&lt;br /&gt;
Es herrscht grosser Andrang bei der Sprechstunde. Keiner der wartenden Studierenden erinnert sich an die genaue Ankunftsreihenfolge. Einige erinnern sich jedoch noch an die Leute die bereits warteten. Es soll eine ungefähre Ankunftsreihenfolge bestimmt werden.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Name      || wartete bereits&lt;br /&gt;
|-&lt;br /&gt;
| Annett    || Daniel, Edeltraut&lt;br /&gt;
|-&lt;br /&gt;
| Bert      || Anett, Daniel, Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Claudia   || -&lt;br /&gt;
|-&lt;br /&gt;
| Daniel    || Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Edeltraut || Claudia&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
a) Erstelle einen Graph aus den Erinnerungen der wartenden Studierenden.&lt;br /&gt;
&lt;br /&gt;
b) Nun soll die ungefähre Reihenfolge der Studierenden berechnet werden.&lt;br /&gt;
&lt;br /&gt;
Algorithmus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ablauf:&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 6: Dynamisches Programmieren (&amp;gt;=6 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-6.png]]&lt;br /&gt;
&amp;lt;!-- Das Bild wurde gerendert mit freundlicher, allerdings unwissender, Unterstützung der deutschen Wikipedia.&lt;br /&gt;
Hier der TeX-Quellcode des obenstehenden Bildes:&lt;br /&gt;
&amp;lt;math&amp;gt;g(m, n) = \left\lbrace\begin{matrix} 42 &amp;amp; m = 0 \or n=0 \\ g(m-1, n-1) + g(m, n-1) &amp;amp; m &amp;gt; 0 \and n &amp;gt; 0 \end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine nicht-rekursive Java-Methode an, die g(m,n) für m, n e N berechnet. Die Methode soll dafür polynomielle Laufzeit benötigen&lt;br /&gt;
&lt;br /&gt;
b) Kleinste worst-case-Laufzeitklasse angeben:&lt;br /&gt;
&lt;br /&gt;
O( .... )&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 7: Geld wechseln (&amp;gt;=6(?) Punkte) ==&lt;br /&gt;
Gegeben ist ein Betrag, welcher durch möglichst wenige Geldstücke der Grössen { 200, 100, 50, 20, 10, 5, 2, 1 } dargestellt werden werden soll.&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine günstige Kodierung für die Geldstücke an&lt;br /&gt;
&lt;br /&gt;
b) Geben Sie eine Zielfunktion und eine Optimierungsrichtung (max/min) an.&lt;br /&gt;
&lt;br /&gt;
c) Geben Sie ein Greedy-Verfahren zur Lösung des Optimierungsproblems an (als Pseudocode oder verbal).&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
[[Informatik 4 (StuPO90)/Gedächtnisprotokoll Klausur SoSe 2007]]&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10198</id>
		<title>Informatik 3/Gedächtnisprotokoll Klausur SS07</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10198"/>
		<updated>2007-07-28T16:44:22Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: /* Aufgabe 6: Dynamisches Programmieren (&amp;gt;=5 Punkte) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Aufgabe 1: Multiple Choice (10(?) Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Kreuzen Sie jeweils wahr bzw. falsch an:&lt;br /&gt;
* ..&lt;br /&gt;
* Traversierung mit Breitensuche erzeugt einen aufspannenden Baum.&lt;br /&gt;
* Die Höhe eines binären Suchbaumes ist immer um 1 größer, als das Maximum der Höhen seiner Teilbäume.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Backtrackingalgorithmus finden der dieses löst.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Greedy-algorithmus finden der dieses löst.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 2: HashTables (&amp;gt;=4 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Hashtabelle der Größe 4.&lt;br /&gt;
*Hashfunktion: h(k) = k mod 4&lt;br /&gt;
*Kollisonsauflösung&amp;quot;double hashing&amp;quot; a(k) = k+2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Vier Werte mit Schlüsseln einfügen und Kollisionen zählen.&lt;br /&gt;
(A,5) (B,11) (C,9) (D,14)&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1, 3, 1 , 3 .. (kann nicht eingefügt werden)&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
0 blieb leer.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Andere Lösung:&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1,0&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ist die Anzahl der Kollisionen bei double hashing abhängig von der Reihenfolge in der die Elemente eingefügt werden? Begründung, ggf. Beispiel.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 3: Suchbäume (&amp;gt;=8 Punkte) ==&lt;br /&gt;
&#039;&#039;&#039;AVL-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Löschen aus AVL-Baum&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rot/Schwarz-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen in RS-Baum&lt;br /&gt;
*Java-Programm schreiben für Höhenberechnung eines Rot-Schwarz-Baumes: int getBlackHeight(Node root)&lt;br /&gt;
** Rot-Schwarz-Baum als gültig vorausgesetzt.&lt;br /&gt;
** Vorgegebene Implementation:&lt;br /&gt;
*** boolean isRed(Node node);&lt;br /&gt;
*** boolean isBlack(Node node);&lt;br /&gt;
*** class Node{ int color; Node left; Node right; }&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;B-Baum&#039;&#039;&#039;&lt;br /&gt;
* Element in B-Baum einfügen.&lt;br /&gt;
[[Bild:Info3-ss2007-3-btree.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 4: Graphen (&amp;gt;=9 Punkte) ==&lt;br /&gt;
a) Baue eine Adjazenzmatrix zu folgendem Graphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4a.png]]&lt;br /&gt;
&lt;br /&gt;
b) Dijkstra auf folgendem Graph ausführen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4b.png]]&lt;br /&gt;
&lt;br /&gt;
c) Definiere (formal oder als Text) den Begriff &amp;quot;aufspannender Baum&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
d) Führe union(D,F) auf folgender, als Wald realisierter disjunkter Menge aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4d.png]]&lt;br /&gt;
&lt;br /&gt;
e) Erstelle den Restflussgraphen zu folgendem Flussgraphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4e.png]]&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 5: Übungsorganisation (&amp;gt;=3 Punkte) ==&lt;br /&gt;
Es herrscht grosser Andrang bei der Sprechstunde. Keiner der wartenden Studierenden erinnert sich an die genaue Ankunftsreihenfolge. Einige erinnern sich jedoch noch an die Leute die bereits warteten. Es soll eine ungefähre Ankunftsreihenfolge bestimmt werden.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Name      || wartete bereits&lt;br /&gt;
|-&lt;br /&gt;
| Annett    || Daniel, Edeltraut&lt;br /&gt;
|-&lt;br /&gt;
| Bert      || Anett, Daniel, Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Claudia   || -&lt;br /&gt;
|-&lt;br /&gt;
| Daniel    || Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Edeltraut || Claudia&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
a) Erstelle einen Graph aus den Erinnerungen der wartenden Studierenden.&lt;br /&gt;
&lt;br /&gt;
b) Nun soll die ungefähre Reihenfolge der Studierenden berechnet werden.&lt;br /&gt;
&lt;br /&gt;
Algorithmus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ablauf:&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 6: Dynamisches Programmieren (&amp;gt;=6 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-6.png]]&lt;br /&gt;
&amp;lt;!-- Das Bild wurde gerendert mit freundlicher, allerdings unwissender, Unterstützung der deutschen Wikipedia.&lt;br /&gt;
Hier der TeX-Quellcode des obenstehenden Bildes:&lt;br /&gt;
&amp;lt;math&amp;gt;g(m, n) = \left\lbrace\begin{matrix} 42 &amp;amp; m = 0 \or n=0 \\ g(m-1, n-1) + g(m, n-1) &amp;amp; m &amp;gt; 0 \and n &amp;gt; 0 \end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine nicht-rekursive Java-Methode an, die g(m,n) für m, n e N berechnet. Die Methode soll dafür polynomielle Laufzeit benötigen&lt;br /&gt;
&lt;br /&gt;
b) Kleinste worst-case-Laufzeitklasse angeben:&lt;br /&gt;
&lt;br /&gt;
O( .... )&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 7: Geld wechseln (&amp;gt;=3 Punkte) ==&lt;br /&gt;
Gegeben ist ein Betrag, welcher durch möglichst wenige Geldstücke der Grössen { 200, 100, 50, 20, 10, 5, 2, 1 } dargestellt werden werden soll.&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine günstige Kodierung für die Geldstücke an&lt;br /&gt;
&lt;br /&gt;
b) Geben Sie eine Zielfunktion und eine Optimierungsrichtung (max/min) an.&lt;br /&gt;
&lt;br /&gt;
c) Geben Sie ein Greedy-Verfahren zur Lösung des Optimierungsproblems an (als Pseudocode oder verbal).&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
[[Informatik 4 (StuPO90)/Gedächtnisprotokoll Klausur SoSe 2007]]&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10197</id>
		<title>Informatik 3/Gedächtnisprotokoll Klausur SS07</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10197"/>
		<updated>2007-07-28T16:43:11Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: /* Siehe auch */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Aufgabe 1: Multiple Choice (10(?) Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Kreuzen Sie jeweils wahr bzw. falsch an:&lt;br /&gt;
* ..&lt;br /&gt;
* Traversierung mit Breitensuche erzeugt einen aufspannenden Baum.&lt;br /&gt;
* Die Höhe eines binären Suchbaumes ist immer um 1 größer, als das Maximum der Höhen seiner Teilbäume.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Backtrackingalgorithmus finden der dieses löst.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Greedy-algorithmus finden der dieses löst.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 2: HashTables (&amp;gt;=4 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Hashtabelle der Größe 4.&lt;br /&gt;
*Hashfunktion: h(k) = k mod 4&lt;br /&gt;
*Kollisonsauflösung&amp;quot;double hashing&amp;quot; a(k) = k+2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Vier Werte mit Schlüsseln einfügen und Kollisionen zählen.&lt;br /&gt;
(A,5) (B,11) (C,9) (D,14)&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1, 3, 1 , 3 .. (kann nicht eingefügt werden)&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
0 blieb leer.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Andere Lösung:&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1,0&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ist die Anzahl der Kollisionen bei double hashing abhängig von der Reihenfolge in der die Elemente eingefügt werden? Begründung, ggf. Beispiel.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 3: Suchbäume (&amp;gt;=8 Punkte) ==&lt;br /&gt;
&#039;&#039;&#039;AVL-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Löschen aus AVL-Baum&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rot/Schwarz-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen in RS-Baum&lt;br /&gt;
*Java-Programm schreiben für Höhenberechnung eines Rot-Schwarz-Baumes: int getBlackHeight(Node root)&lt;br /&gt;
** Rot-Schwarz-Baum als gültig vorausgesetzt.&lt;br /&gt;
** Vorgegebene Implementation:&lt;br /&gt;
*** boolean isRed(Node node);&lt;br /&gt;
*** boolean isBlack(Node node);&lt;br /&gt;
*** class Node{ int color; Node left; Node right; }&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;B-Baum&#039;&#039;&#039;&lt;br /&gt;
* Element in B-Baum einfügen.&lt;br /&gt;
[[Bild:Info3-ss2007-3-btree.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 4: Graphen (&amp;gt;=9 Punkte) ==&lt;br /&gt;
a) Baue eine Adjazenzmatrix zu folgendem Graphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4a.png]]&lt;br /&gt;
&lt;br /&gt;
b) Dijkstra auf folgendem Graph ausführen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4b.png]]&lt;br /&gt;
&lt;br /&gt;
c) Definiere (formal oder als Text) den Begriff &amp;quot;aufspannender Baum&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
d) Führe union(D,F) auf folgender, als Wald realisierter disjunkter Menge aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4d.png]]&lt;br /&gt;
&lt;br /&gt;
e) Erstelle den Restflussgraphen zu folgendem Flussgraphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4e.png]]&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 5: Übungsorganisation (&amp;gt;=3 Punkte) ==&lt;br /&gt;
Es herrscht grosser Andrang bei der Sprechstunde. Keiner der wartenden Studierenden erinnert sich an die genaue Ankunftsreihenfolge. Einige erinnern sich jedoch noch an die Leute die bereits warteten. Es soll eine ungefähre Ankunftsreihenfolge bestimmt werden.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Name      || wartete bereits&lt;br /&gt;
|-&lt;br /&gt;
| Annett    || Daniel, Edeltraut&lt;br /&gt;
|-&lt;br /&gt;
| Bert      || Anett, Daniel, Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Claudia   || -&lt;br /&gt;
|-&lt;br /&gt;
| Daniel    || Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Edeltraut || Claudia&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
a) Erstelle einen Graph aus den Erinnerungen der wartenden Studierenden.&lt;br /&gt;
&lt;br /&gt;
b) Nun soll die ungefähre Reihenfolge der Studierenden berechnet werden.&lt;br /&gt;
&lt;br /&gt;
Algorithmus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ablauf:&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 6: Dynamisches Programmieren (&amp;gt;=5 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-6.png]]&lt;br /&gt;
&amp;lt;!-- Das Bild wurde gerendert mit freundlicher, allerdings unwissender, Unterstützung der deutschen Wikipedia.&lt;br /&gt;
Hier der TeX-Quellcode des obenstehenden Bildes:&lt;br /&gt;
&amp;lt;math&amp;gt;g(m, n) = \left\lbrace\begin{matrix} 42 &amp;amp; m = 0 \or n=0 \\ g(m-1, n-1) + g(m, n-1) &amp;amp; m &amp;gt; 0 \and n &amp;gt; 0 \end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine nicht-rekursive Java-Methode an, die g(m,n) für m, n e N berechnet. Die Methode soll dafür polynomielle Laufzeit benötigen&lt;br /&gt;
&lt;br /&gt;
b) Kleinste worst-case-Laufzeitklasse angeben:&lt;br /&gt;
&lt;br /&gt;
O( .... )&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 7: Geld wechseln (&amp;gt;=3 Punkte) ==&lt;br /&gt;
Gegeben ist ein Betrag, welcher durch möglichst wenige Geldstücke der Grössen { 200, 100, 50, 20, 10, 5, 2, 1 } dargestellt werden werden soll.&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine günstige Kodierung für die Geldstücke an&lt;br /&gt;
&lt;br /&gt;
b) Geben Sie eine Zielfunktion und eine Optimierungsrichtung (max/min) an.&lt;br /&gt;
&lt;br /&gt;
c) Geben Sie ein Greedy-Verfahren zur Lösung des Optimierungsproblems an (als Pseudocode oder verbal).&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;br /&gt;
&lt;br /&gt;
[[Informatik 4 (StuPO90)/Gedächtnisprotokoll Klausur SoSe 2007]]&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10196</id>
		<title>Informatik 3/Gedächtnisprotokoll Klausur SS07</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10196"/>
		<updated>2007-07-28T16:40:11Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Aufgabe 1: Multiple Choice (10(?) Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Kreuzen Sie jeweils wahr bzw. falsch an:&lt;br /&gt;
* ..&lt;br /&gt;
* Traversierung mit Breitensuche erzeugt einen aufspannenden Baum.&lt;br /&gt;
* Die Höhe eines binären Suchbaumes ist immer um 1 größer, als das Maximum der Höhen seiner Teilbäume.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Backtrackingalgorithmus finden der dieses löst.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Greedy-algorithmus finden der dieses löst.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 2: HashTables (&amp;gt;=4 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Hashtabelle der Größe 4.&lt;br /&gt;
*Hashfunktion: h(k) = k mod 4&lt;br /&gt;
*Kollisonsauflösung&amp;quot;double hashing&amp;quot; a(k) = k+2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Vier Werte mit Schlüsseln einfügen und Kollisionen zählen.&lt;br /&gt;
(A,5) (B,11) (C,9) (D,14)&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1, 3, 1 , 3 .. (kann nicht eingefügt werden)&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
0 blieb leer.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Andere Lösung:&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1,0&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ist die Anzahl der Kollisionen bei double hashing abhängig von der Reihenfolge in der die Elemente eingefügt werden? Begründung, ggf. Beispiel.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 3: Suchbäume (&amp;gt;=8 Punkte) ==&lt;br /&gt;
&#039;&#039;&#039;AVL-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Löschen aus AVL-Baum&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rot/Schwarz-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen in RS-Baum&lt;br /&gt;
*Java-Programm schreiben für Höhenberechnung eines Rot-Schwarz-Baumes: int getBlackHeight(Node root)&lt;br /&gt;
** Rot-Schwarz-Baum als gültig vorausgesetzt.&lt;br /&gt;
** Vorgegebene Implementation:&lt;br /&gt;
*** boolean isRed(Node node);&lt;br /&gt;
*** boolean isBlack(Node node);&lt;br /&gt;
*** class Node{ int color; Node left; Node right; }&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;B-Baum&#039;&#039;&#039;&lt;br /&gt;
* Element in B-Baum einfügen.&lt;br /&gt;
[[Bild:Info3-ss2007-3-btree.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 4: Graphen (&amp;gt;=9 Punkte) ==&lt;br /&gt;
a) Baue eine Adjazenzmatrix zu folgendem Graphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4a.png]]&lt;br /&gt;
&lt;br /&gt;
b) Dijkstra auf folgendem Graph ausführen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4b.png]]&lt;br /&gt;
&lt;br /&gt;
c) Definiere (formal oder als Text) den Begriff &amp;quot;aufspannender Baum&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
d) Führe union(D,F) auf folgender, als Wald realisierter disjunkter Menge aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4d.png]]&lt;br /&gt;
&lt;br /&gt;
e) Erstelle den Restflussgraphen zu folgendem Flussgraphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4e.png]]&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 5: Übungsorganisation (&amp;gt;=3 Punkte) ==&lt;br /&gt;
Es herrscht grosser Andrang bei der Sprechstunde. Keiner der wartenden Studierenden erinnert sich an die genaue Ankunftsreihenfolge. Einige erinnern sich jedoch noch an die Leute die bereits warteten. Es soll eine ungefähre Ankunftsreihenfolge bestimmt werden.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Name      || wartete bereits&lt;br /&gt;
|-&lt;br /&gt;
| Annett    || Daniel, Edeltraut&lt;br /&gt;
|-&lt;br /&gt;
| Bert      || Anett, Daniel, Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Claudia   || -&lt;br /&gt;
|-&lt;br /&gt;
| Daniel    || Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Edeltraut || Claudia&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
a) Erstelle einen Graph aus den Erinnerungen der wartenden Studierenden.&lt;br /&gt;
&lt;br /&gt;
b) Nun soll die ungefähre Reihenfolge der Studierenden berechnet werden.&lt;br /&gt;
&lt;br /&gt;
Algorithmus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ablauf:&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 6: Dynamisches Programmieren (&amp;gt;=5 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-6.png]]&lt;br /&gt;
&amp;lt;!-- Das Bild wurde gerendert mit freundlicher, allerdings unwissender, Unterstützung der deutschen Wikipedia.&lt;br /&gt;
Hier der TeX-Quellcode des obenstehenden Bildes:&lt;br /&gt;
&amp;lt;math&amp;gt;g(m, n) = \left\lbrace\begin{matrix} 42 &amp;amp; m = 0 \or n=0 \\ g(m-1, n-1) + g(m, n-1) &amp;amp; m &amp;gt; 0 \and n &amp;gt; 0 \end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine nicht-rekursive Java-Methode an, die g(m,n) für m, n e N berechnet. Die Methode soll dafür polynomielle Laufzeit benötigen&lt;br /&gt;
&lt;br /&gt;
b) Kleinste worst-case-Laufzeitklasse angeben:&lt;br /&gt;
&lt;br /&gt;
O( .... )&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 7: Geld wechseln (&amp;gt;=3 Punkte) ==&lt;br /&gt;
Gegeben ist ein Betrag, welcher durch möglichst wenige Geldstücke der Grössen { 200, 100, 50, 20, 10, 5, 2, 1 } dargestellt werden werden soll.&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine günstige Kodierung für die Geldstücke an&lt;br /&gt;
&lt;br /&gt;
b) Geben Sie eine Zielfunktion und eine Optimierungsrichtung (max/min) an.&lt;br /&gt;
&lt;br /&gt;
c) Geben Sie ein Greedy-Verfahren zur Lösung des Optimierungsproblems an (als Pseudocode oder verbal).&lt;br /&gt;
&lt;br /&gt;
== Siehe auch ==&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10195</id>
		<title>Informatik 3/Gedächtnisprotokoll Klausur SS07</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10195"/>
		<updated>2007-07-28T16:39:45Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: /* Aufgabe 1: Multiple Choice (&amp;gt;=5 Punkte) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Aufgabe 1: Multiple Choice (10(?) Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Kreuzen Sie jeweils wahr bzw. falsch an:&lt;br /&gt;
* ..&lt;br /&gt;
* Traversierung mit Breitensuche erzeugt einen aufspannenden Baum.&lt;br /&gt;
* Die Höhe eines binären Suchbaumes ist immer um 1 größer, als das Maximum der Höhen seiner Teilbäume.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Backtrackingalgorithmus finden der dieses löst.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Greedy-algorithmus finden der dieses löst.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 2: HashTables (&amp;gt;=4 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Hashtabelle der Größe 4.&lt;br /&gt;
*Hashfunktion: h(k) = k mod 4&lt;br /&gt;
*Kollisonsauflösung&amp;quot;double hashing&amp;quot; a(k) = k+2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Vier Werte mit Schlüsseln einfügen und Kollisionen zählen.&lt;br /&gt;
(A,5) (B,11) (C,9) (D,14)&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1, 3, 1 , 3 .. (kann nicht eingefügt werden)&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
0 blieb leer.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Andere Lösung:&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1,0&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ist die Anzahl der Kollisionen bei double hashing abhängig von der Reihenfolge in der die Elemente eingefügt werden? Begründung, ggf. Beispiel.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 3: Suchbäume (&amp;gt;=8 Punkte) ==&lt;br /&gt;
&#039;&#039;&#039;AVL-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Löschen aus AVL-Baum&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rot/Schwarz-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen in RS-Baum&lt;br /&gt;
*Java-Programm schreiben für Höhenberechnung eines Rot-Schwarz-Baumes: int getBlackHeight(Node root)&lt;br /&gt;
** Rot-Schwarz-Baum als gültig vorausgesetzt.&lt;br /&gt;
** Vorgegebene Implementation:&lt;br /&gt;
*** boolean isRed(Node node);&lt;br /&gt;
*** boolean isBlack(Node node);&lt;br /&gt;
*** class Node{ int color; Node left; Node right; }&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;B-Baum&#039;&#039;&#039;&lt;br /&gt;
* Element in B-Baum einfügen.&lt;br /&gt;
[[Bild:Info3-ss2007-3-btree.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 4: Graphen (&amp;gt;=9 Punkte) ==&lt;br /&gt;
a) Baue eine Adjazenzmatrix zu folgendem Graphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4a.png]]&lt;br /&gt;
&lt;br /&gt;
b) Dijkstra auf folgendem Graph ausführen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4b.png]]&lt;br /&gt;
&lt;br /&gt;
c) Definiere (formal oder als Text) den Begriff &amp;quot;aufspannender Baum&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
d) Führe union(D,F) auf folgender, als Wald realisierter disjunkter Menge aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4d.png]]&lt;br /&gt;
&lt;br /&gt;
e) Erstelle den Restflussgraphen zu folgendem Flussgraphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4e.png]]&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 5: Übungsorganisation (&amp;gt;=3 Punkte) ==&lt;br /&gt;
Es herrscht grosser Andrang bei der Sprechstunde. Keiner der wartenden Studierenden erinnert sich an die genaue Ankunftsreihenfolge. Einige erinnern sich jedoch noch an die Leute die bereits warteten. Es soll eine ungefähre Ankunftsreihenfolge bestimmt werden.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Name      || wartete bereits&lt;br /&gt;
|-&lt;br /&gt;
| Annett    || Daniel, Edeltraut&lt;br /&gt;
|-&lt;br /&gt;
| Bert      || Anett, Daniel, Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Claudia   || -&lt;br /&gt;
|-&lt;br /&gt;
| Daniel    || Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Edeltraut || Claudia&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
a) Erstelle einen Graph aus den Erinnerungen der wartenden Studierenden.&lt;br /&gt;
&lt;br /&gt;
b) Nun soll die ungefähre Reihenfolge der Studierenden berechnet werden.&lt;br /&gt;
&lt;br /&gt;
Algorithmus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ablauf:&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 6: Dynamisches Programmieren (&amp;gt;=5 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-6.png]]&lt;br /&gt;
&amp;lt;!-- Das Bild wurde gerendert mit freundlicher, allerdings unwissender, Unterstützung der deutschen Wikipedia.&lt;br /&gt;
Hier der TeX-Quellcode des obenstehenden Bildes:&lt;br /&gt;
&amp;lt;math&amp;gt;g(m, n) = \left\lbrace\begin{matrix} 42 &amp;amp; m = 0 \or n=0 \\ g(m-1, n-1) + g(m, n-1) &amp;amp; m &amp;gt; 0 \and n &amp;gt; 0 \end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine nicht-rekursive Java-Methode an, die g(m,n) für m, n e N berechnet. Die Methode soll dafür polynomielle Laufzeit benötigen&lt;br /&gt;
&lt;br /&gt;
b) Kleinste worst-case-Laufzeitklasse angeben:&lt;br /&gt;
&lt;br /&gt;
O( .... )&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 7: Geld wechseln (&amp;gt;=3 Punkte) ==&lt;br /&gt;
Gegeben ist ein Betrag, welcher durch möglichst wenige Geldstücke der Grössen { 200, 100, 50, 20, 10, 5, 2, 1 } dargestellt werden werden soll.&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine günstige Kodierung für die Geldstücke an&lt;br /&gt;
&lt;br /&gt;
b) Geben Sie eine Zielfunktion und eine Optimierungsrichtung (max/min) an.&lt;br /&gt;
&lt;br /&gt;
c) Geben Sie ein Greedy-Verfahren zur Lösung des Optimierungsproblems an (als Pseudocode oder verbal).&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10194</id>
		<title>Informatik 3/Gedächtnisprotokoll Klausur SS07</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10194"/>
		<updated>2007-07-28T16:36:12Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Aufgabe 1: Multiple Choice (&amp;gt;=5 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Kreuzen Sie jeweils wahr bzw. falsch an:&lt;br /&gt;
* ..&lt;br /&gt;
* Traversierung mit Breitensuche erzeugt einen aufspannenden Baum.&lt;br /&gt;
* Die Höhe eines binären Suchbaumes ist immer um 1 größer, als das Maximum der Höhen seiner Teilbäume.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Backtrackingalgorithmus finden der dieses löst.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Greedy-algorithmus finden der dieses löst.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 2: HashTables (&amp;gt;=4 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Hashtabelle der Größe 4.&lt;br /&gt;
*Hashfunktion: h(k) = k mod 4&lt;br /&gt;
*Kollisonsauflösung&amp;quot;double hashing&amp;quot; a(k) = k+2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Vier Werte mit Schlüsseln einfügen und Kollisionen zählen.&lt;br /&gt;
(A,5) (B,11) (C,9) (D,14)&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1, 3, 1 , 3 .. (kann nicht eingefügt werden)&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
0 blieb leer.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Andere Lösung:&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1,0&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ist die Anzahl der Kollisionen bei double hashing abhängig von der Reihenfolge in der die Elemente eingefügt werden? Begründung, ggf. Beispiel.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 3: Suchbäume (&amp;gt;=8 Punkte) ==&lt;br /&gt;
&#039;&#039;&#039;AVL-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Löschen aus AVL-Baum&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rot/Schwarz-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen in RS-Baum&lt;br /&gt;
*Java-Programm schreiben für Höhenberechnung eines Rot-Schwarz-Baumes: int getBlackHeight(Node root)&lt;br /&gt;
** Rot-Schwarz-Baum als gültig vorausgesetzt.&lt;br /&gt;
** Vorgegebene Implementation:&lt;br /&gt;
*** boolean isRed(Node node);&lt;br /&gt;
*** boolean isBlack(Node node);&lt;br /&gt;
*** class Node{ int color; Node left; Node right; }&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;B-Baum&#039;&#039;&#039;&lt;br /&gt;
* Element in B-Baum einfügen.&lt;br /&gt;
[[Bild:Info3-ss2007-3-btree.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 4: Graphen (&amp;gt;=9 Punkte) ==&lt;br /&gt;
a) Baue eine Adjazenzmatrix zu folgendem Graphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4a.png]]&lt;br /&gt;
&lt;br /&gt;
b) Dijkstra auf folgendem Graph ausführen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4b.png]]&lt;br /&gt;
&lt;br /&gt;
c) Definiere (formal oder als Text) den Begriff &amp;quot;aufspannender Baum&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
d) Führe union(D,F) auf folgender, als Wald realisierter disjunkter Menge aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4d.png]]&lt;br /&gt;
&lt;br /&gt;
e) Erstelle den Restflussgraphen zu folgendem Flussgraphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4e.png]]&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 5: Übungsorganisation (&amp;gt;=3 Punkte) ==&lt;br /&gt;
Es herrscht grosser Andrang bei der Sprechstunde. Keiner der wartenden Studierenden erinnert sich an die genaue Ankunftsreihenfolge. Einige erinnern sich jedoch noch an die Leute die bereits warteten. Es soll eine ungefähre Ankunftsreihenfolge bestimmt werden.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Name      || wartete bereits&lt;br /&gt;
|-&lt;br /&gt;
| Annett    || Daniel, Edeltraut&lt;br /&gt;
|-&lt;br /&gt;
| Bert      || Anett, Daniel, Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Claudia   || -&lt;br /&gt;
|-&lt;br /&gt;
| Daniel    || Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Edeltraut || Claudia&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
a) Erstelle einen Graph aus den Erinnerungen der wartenden Studierenden.&lt;br /&gt;
&lt;br /&gt;
b) Nun soll die ungefähre Reihenfolge der Studierenden berechnet werden.&lt;br /&gt;
&lt;br /&gt;
Algorithmus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ablauf:&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 6: Dynamisches Programmieren (&amp;gt;=5 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-6.png]]&lt;br /&gt;
&amp;lt;!-- Das Bild wurde gerendert mit freundlicher, allerdings unwissender, Unterstützung der deutschen Wikipedia.&lt;br /&gt;
Hier der TeX-Quellcode des obenstehenden Bildes:&lt;br /&gt;
&amp;lt;math&amp;gt;g(m, n) = \left\lbrace\begin{matrix} 42 &amp;amp; m = 0 \or n=0 \\ g(m-1, n-1) + g(m, n-1) &amp;amp; m &amp;gt; 0 \and n &amp;gt; 0 \end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine nicht-rekursive Java-Methode an, die g(m,n) für m, n e N berechnet. Die Methode soll dafür polynomielle Laufzeit benötigen&lt;br /&gt;
&lt;br /&gt;
b) Kleinste worst-case-Laufzeitklasse angeben:&lt;br /&gt;
&lt;br /&gt;
O( .... )&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 7: Geld wechseln (&amp;gt;=3 Punkte) ==&lt;br /&gt;
Gegeben ist ein Betrag, welcher durch möglichst wenige Geldstücke der Grössen { 200, 100, 50, 20, 10, 5, 2, 1 } dargestellt werden werden soll.&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine günstige Kodierung für die Geldstücke an&lt;br /&gt;
&lt;br /&gt;
b) Geben Sie eine Zielfunktion und eine Optimierungsrichtung (max/min) an.&lt;br /&gt;
&lt;br /&gt;
c) Geben Sie ein Greedy-Verfahren zur Lösung des Optimierungsproblems an (als Pseudocode oder verbal).&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Informatik_4_(StuPO90)/Ged%C3%A4chtnisprotokoll_Klausur_SoSe_2007&amp;diff=10159</id>
		<title>Informatik 4 (StuPO90)/Gedächtnisprotokoll Klausur SoSe 2007</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Informatik_4_(StuPO90)/Ged%C3%A4chtnisprotokoll_Klausur_SoSe_2007&amp;diff=10159"/>
		<updated>2007-07-27T12:52:51Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: /* Aufgabe 5: Betriebsmittelvergabe (5 Punkte) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Aufgabe 1: Kurze Fragen (10 Punkte) ==&lt;br /&gt;
* Unterschiede und Vorteile von synchroner und asynchroner Nachrichtenübertragung?&lt;br /&gt;
** blockierend / nicht blockieren vs. Nachricht geht evtl. verloren&lt;br /&gt;
&lt;br /&gt;
* Vorteile von leichtgewichtigen Prozessen&lt;br /&gt;
** schnellerer Prozesswechsel, da gemeinsamer Adressraum&lt;br /&gt;
** einfache Implementierung&lt;br /&gt;
** eigener Scheduler ?&lt;br /&gt;
&lt;br /&gt;
* Erkläre die zwei Stufen von Interruptbehandlung. Grund der Zweistufigkeit?&lt;br /&gt;
** Stufe 1: nicht unterbrechbar, nur nötigste Behandlung (speichern).&lt;br /&gt;
** Stufe 2: abschließende Behandlung des interrupts... &lt;br /&gt;
** Grund: Nicht unterbrechbarer Zeitraum mötlichst klein, damit keine/wenige Interrupts verloren gehen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 2: Assembler (15 Punkte) ==&lt;br /&gt;
Programmieren sie in Assembler die Funktion _binom(int *a, int *b)&lt;br /&gt;
&lt;br /&gt;
*Berechne a²+2ab+b² (!) und speichere das ergebnis in *b und gib 0 bei geglückter Operation zurück.&lt;br /&gt;
*Falls a&amp;lt;0 oder a&amp;gt;32767 oder b&amp;gt;32767 oder b&amp;lt;-32768 gib sofort -1 zurück.&lt;br /&gt;
*Bei der addition der werte a², b² und 2ab kann es zum Überlauf kommen.&lt;br /&gt;
**Falls das passiert gib ebenfalls -1 zurück.(Rückgaben erfolgen wie üblich im Register D0)&lt;br /&gt;
*Schreibe desweiteren eine Subroutine, die das Quadrat einer Zahl berechnet (geht in 2 Zeilen).&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 3: Semaphoren (10 Punkte) ==&lt;br /&gt;
Elefanten und Mäuse gehen auf ein Schiff.&lt;br /&gt;
Dabei sollen immer möglichst doppelt so viele Möuse wie Elefanten auf dem Schiff sein.&lt;br /&gt;
Nur eine Differenz von 1 ist erlaubt..&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 4: Monitore (12 Punkte) ==&lt;br /&gt;
In einem Schwimmbad gibt es ein Schwimmbecken.&lt;br /&gt;
Es gibt Turmspringer, Schwimmer und den Bademeister.&lt;br /&gt;
Synchronisiere mit den Folgenden Regeln über Monitore:&lt;br /&gt;
*Turmspringer und Schwimmer dürfen das Schwimmbecken nicht gleichzeitig benutzen.&lt;br /&gt;
*Wenn kein Bademeister anwesend ist, darf kein Schwimmer ins Becken.&lt;br /&gt;
*Turmspringer dürfen auch ins Becken springen, wenn Schwimmer warten, weil kein Bademeister da ist.&lt;br /&gt;
*Wenn ein Bademeister anwesend ist, haben die Schwimmer vor den Turmspringern Vorrang.&lt;br /&gt;
*Der Bademeister darf erst Feierabend machen (weggehen), wenn kein Schwimmer mehr im Becken ist&lt;br /&gt;
*Der Bademeister darf insbesondere auch dann gehen, wenn noch Schwimmer am Beckenrand warten (voraussgesetzt, es befindet sich kein Schwimmer im Becken).&lt;br /&gt;
*Es kann davon ausgegangen werden, dass es maximal einen Bademeister gibt.&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 5: Betriebsmittelvergabe (5 Punkte) ==&lt;br /&gt;
&lt;br /&gt;
Die Betriebsmittel werden in der Aufgabe nach preämptiver Planung nach Laufzeit&lt;br /&gt;
vergeben, gegeben sind folgende Prozesse:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info4-ss2007-5.png]]&lt;br /&gt;
&lt;br /&gt;
Geben Sie für die jewelige Zeit die Vergabereihenfolge für die Prozesse an:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
-----------------------------------&lt;br /&gt;
1 2 3 4 5 6 7 8 9 10&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Geben Sie zusätzlich die zeitlichen Verläufe der Inhalte der Warte-Queues an&lt;br /&gt;
und berechnen Sie die mittlere Wartezeit.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Irgendwie komme ich nicht auf 50 Punkte :&amp;gt;&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Datei:Info4-ss2007-5.png&amp;diff=10229</id>
		<title>Datei:Info4-ss2007-5.png</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Datei:Info4-ss2007-5.png&amp;diff=10229"/>
		<updated>2007-07-27T12:52:10Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10191</id>
		<title>Informatik 3/Gedächtnisprotokoll Klausur SS07</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10191"/>
		<updated>2007-07-26T20:32:18Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: /* Aufgabe 3: Suchbäume */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Aufgabe 1: Multiple Choice ==&lt;br /&gt;
&lt;br /&gt;
Kreuzen Sie jeweils wahr bzw. falsch an:&lt;br /&gt;
* ..&lt;br /&gt;
* Traversierung mit Breitensuche erzeugt einen aufspannenden Baum.&lt;br /&gt;
* Die Höhe eines binären Suchbaumes ist immer um 1 größer, als das Maximum der Höhen seiner Teilbäume.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Backtrackingalgorithmus finden der dieses löst.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Greedy-algorithmus finden der dieses löst.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 2: HashTables ==&lt;br /&gt;
&lt;br /&gt;
Hashtabelle der Größe 4.&lt;br /&gt;
*Hashfunktion: h(k) = k mod 4&lt;br /&gt;
*Kollisonsauflösung&amp;quot;double hashing&amp;quot; a(k) = k+2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Vier Werte mit Schlüsseln einfügen und Kollisionen zählen.&lt;br /&gt;
(A,5) (B,11) (C,9) (D,14)&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1, 3, 1 , 3 .. (kann nicht eingefügt werden)&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
0 blieb leer.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ist die Anzahl der Kollisionen bei double hashing abhängig von der Reihenfolge in der die Elemente eingefügt werden? Begründung, ggf. Beispiel.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 3: Suchbäume ==&lt;br /&gt;
&#039;&#039;&#039;AVL-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Löschen aus AVL-Baum&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Rot/Schwarz-Bäume&#039;&#039;&#039;&lt;br /&gt;
*Einfügen in RS-Baum&lt;br /&gt;
*Java-Programm schreiben für Höhenberechnung eines Rot-Schwarz-Baumes: int getBlackHeight(Node root)&lt;br /&gt;
** Rot-Schwarz-Baum als gültig vorausgesetzt.&lt;br /&gt;
** Vorgegebene Implementation:&lt;br /&gt;
*** boolean isRed(Node node);&lt;br /&gt;
*** boolean isBlack(Node node);&lt;br /&gt;
*** class Node{ int color; Node left; Node right; }&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;B-Baum&#039;&#039;&#039;&lt;br /&gt;
* Element in B-Baum einfügen.&lt;br /&gt;
[[Bild:Info3-ss2007-3-btree.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 4: Graphen ==&lt;br /&gt;
a) Baue eine Adjazenzmatrix zu folgendem Graphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4a.png]]&lt;br /&gt;
&lt;br /&gt;
b) Dijkstra auf folgendem Graph ausführen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4b.png]]&lt;br /&gt;
&lt;br /&gt;
c) Definiere (formal oder als Text) den Begriff &amp;quot;aufspannender Baum&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
d) Führe union(D,F) auf folgender, als Wald realisierter disjunkter Menge aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4d.png]]&lt;br /&gt;
&lt;br /&gt;
e) Erstelle den Restflussgraphen zu folgendem Flussgraphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4e.png]]&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 5: Übungsorganisation ==&lt;br /&gt;
Es herrscht grosser Andrang bei der Sprechstunde. Keiner der wartenden Studierenden erinnert sich an die genaue Ankunftsreihenfolge. Einige erinnern sich jedoch noch an die Leute die bereits warteten. Es soll eine ungefähre Ankunftsreihenfolge bestimmt werden.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Name      || wartete bereits&lt;br /&gt;
|-&lt;br /&gt;
| Annett    || Daniel, Edeltraut&lt;br /&gt;
|-&lt;br /&gt;
| Bert      || Anett, Daniel, Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Claudia   || -&lt;br /&gt;
|-&lt;br /&gt;
| Daniel    || Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Edeltraut || Claudia&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
a) Erstelle einen Graph aus den Erinnerungen der wartenden Studierenden.&lt;br /&gt;
&lt;br /&gt;
b) Nun soll die ungefähre Reihenfolge der Studierenden berechnet werden.&lt;br /&gt;
&lt;br /&gt;
Algorithmus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ablauf:&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 6: Dynamisches Programmieren ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-6.png]]&lt;br /&gt;
&amp;lt;!-- Das Bild wurde gerendert mit freundlicher, allerdings unwissender, Unterstützung der deutschen Wikipedia.&lt;br /&gt;
Hier der TeX-Quellcode des obenstehenden Bildes:&lt;br /&gt;
&amp;lt;math&amp;gt;g(m, n) = \left\lbrace\begin{matrix} 42 &amp;amp; m = 0 \or n=0 \\ g(m-1, n-1) + g(m, n-1) &amp;amp; m &amp;gt; 0 \and n &amp;gt; 0 \end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine nicht-rekursive Java-Methode an, die g(m,n) für m, n e N \ {0} berechnet. Die Methode soll dafür polynomielle Laufzeit benötigen&lt;br /&gt;
&lt;br /&gt;
b) Kleinste worst-case-Laufzeitklasse angeben:&lt;br /&gt;
&lt;br /&gt;
O( .... )&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 7: Geld wechseln ==&lt;br /&gt;
Gegeben ist ein Betrag, welcher durch möglichst wenige Geldstücke der Grössen { 200, 100, 50, 20, 10, 5, 2, 1 } dargestellt werden werden soll.&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine günstige Kodierung für die Geldstücke an&lt;br /&gt;
&lt;br /&gt;
b) Geben Sie eine Zielfunktion und eine Optimierungsrichtung (max/min) an.&lt;br /&gt;
&lt;br /&gt;
c) Geben Sie ein Greedy-Verfahren zur Lösung des Optimierungsproblems an (als Pseudocode oder verbal).&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Datei:Info3-ss2007-3-btree.png&amp;diff=10228</id>
		<title>Datei:Info3-ss2007-3-btree.png</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Datei:Info3-ss2007-3-btree.png&amp;diff=10228"/>
		<updated>2007-07-26T20:31:34Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Datei:Info3-ss2007-6.png&amp;diff=10226</id>
		<title>Datei:Info3-ss2007-6.png</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Datei:Info3-ss2007-6.png&amp;diff=10226"/>
		<updated>2007-07-26T20:05:49Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das Bild wurde gerendert mit freundlicher, allerdings unwissender, Unterstützung der deutschen Wikipedia.&lt;br /&gt;
&lt;br /&gt;
Hier der TeX-Quellcode des obenstehenden Bildes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;g(m, n) = \left\lbrace\begin{matrix} 42 &amp;amp; m = 0 \or n=0 \\ g(m-1, n-1) + g(m, n-1) &amp;amp; m &amp;gt; 0 \and n &amp;gt; 0 \end{matrix}\right.&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Datei:Info3-ss2007-6.png&amp;diff=10225</id>
		<title>Datei:Info3-ss2007-6.png</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Datei:Info3-ss2007-6.png&amp;diff=10225"/>
		<updated>2007-07-26T18:49:44Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das Bild wurde gerendert mit freundlicher, allerdings unwissender, Unterstützung der deutschen Wikipedia.&lt;br /&gt;
Hier der TeX-Quellcode des obenstehenden Bildes:&lt;br /&gt;
&amp;lt;math&amp;gt;g(m, n) = \left\lbrace\begin{matrix} 42 &amp;amp; m = 0 \or n=0 \\ g(m-1, n-1) + g(m, n-1) &amp;amp; m &amp;gt; 0 \and n &amp;gt; 0 \end{matrix}\right.&amp;lt;/math&amp;gt;&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10188</id>
		<title>Informatik 3/Gedächtnisprotokoll Klausur SS07</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10188"/>
		<updated>2007-07-26T18:46:21Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: /* Aufgabe 6: Dynamisches Programmieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 1. Aufgabe: Multiple Choice ==&lt;br /&gt;
&lt;br /&gt;
Kreuzen Sie jeweils wahr bzw. falsch an:&lt;br /&gt;
* ..&lt;br /&gt;
* Traversierung mit Breitensuche erzeugt einen aufspannenden Baum.&lt;br /&gt;
* Die Höhe eines binären Suchbaumes ist immer um 1 größer, als das Maximum der Höhen seiner Teilbäume.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Backtrackingalgorithmus finden der dieses löst.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Greedy-algorithmus finden der dieses löst.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HashTables ==&lt;br /&gt;
&lt;br /&gt;
Hashtabelle der Größe 4.&lt;br /&gt;
*Hashfunktion: h(k) = k mod 4&lt;br /&gt;
*Kollisonsauflösung&amp;quot;double hashing&amp;quot; a(k) = k+2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Vier Werte mit Schlüsseln einfügen und Kollisionen zählen.&lt;br /&gt;
(A,5) (B,11) (C,9) (D,14)&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1, 3, 1 , 3 .. (kann nicht eingefügt werden)&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
0 blieb leer.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ist die Anzahl der Kollisionen bei double hashing abhängig von der Reihenfolge in der die Elemente eingefügt werden? Begründung, ggf. Beispiel.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AVL-Bäume ==&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Löschen aus AVL-Baum&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rot/Schwarz-Bäume ==&lt;br /&gt;
*Einfügen in RS-Baum&lt;br /&gt;
*Java-Programm schreiben für Höhenberechnung eines Rot-Schwarz-Baumes: int getBlackHeight(Node root)&lt;br /&gt;
** Rot-Schwarz-Baum als gültig vorausgesetzt.&lt;br /&gt;
** Vorgegebene Implementation:&lt;br /&gt;
*** boolean isRed(Node node);&lt;br /&gt;
*** boolean isBlack(Node node);&lt;br /&gt;
*** class Node{ int color; Node left; Node right; }&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== B-Baum == &lt;br /&gt;
* Element in B-Baum einfügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 4: Graphen ==&lt;br /&gt;
a) Baue eine Adjazenzmatrix zu folgendem Graphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4a.png]]&lt;br /&gt;
&lt;br /&gt;
b) Dijkstra auf folgendem Graph ausführen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4b.png]]&lt;br /&gt;
&lt;br /&gt;
c) Definiere (formal oder als Text) den Begriff &amp;quot;aufspannender Baum&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
d) Führe union(D,F) auf folgender, als Wald realisierter disjunkter Menge aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4d.png]]&lt;br /&gt;
&lt;br /&gt;
e) Erstelle den Restflussgraphen zu folgendem Flussgraphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4e.png]]&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 5: Übungsorganisation ==&lt;br /&gt;
Es herrscht grosser Andrang bei der Sprechstunde. Keiner der wartenden Studierenden erinnert sich an die genaue Ankunftsreihenfolge. Einige erinnern sich jedoch noch an die Leute die bereits warteten. Es soll eine ungefähre Ankunftsreihenfolge bestimmt werden.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Name      || wartete bereits&lt;br /&gt;
|-&lt;br /&gt;
| Annett    || Daniel, Edeltraut&lt;br /&gt;
|-&lt;br /&gt;
| Bert      || Anett, Daniel, Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Claudia   || -&lt;br /&gt;
|-&lt;br /&gt;
| Daniel    || Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Edeltraut || Claudia&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
a) Erstelle einen Graph aus den Erinnerungen der wartenden Studierenden.&lt;br /&gt;
&lt;br /&gt;
b) Nun soll die ungefähre Reihenfolge der Studierenden berechnet werden.&lt;br /&gt;
&lt;br /&gt;
Algorithmus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ablauf:&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 6: Dynamisches Programmieren ==&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-6.png]]&lt;br /&gt;
&amp;lt;!-- Das Bild wurde gerendert mit freundlicher, allerdings unwissender, Unterstützung der deutschen Wikipedia.&lt;br /&gt;
Hier der TeX-Quellcode des obenstehenden Bildes:&lt;br /&gt;
&amp;lt;math&amp;gt;g(m, n) = \left\lbrace\begin{matrix} 42 &amp;amp; m = 0 \or n=0 \\ g(m-1, n-1) + g(m, n-1) &amp;amp; m &amp;gt; 0 \and n &amp;gt; 0 \end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine nicht-rekursive Java-Methode an, die g(m,n) für m, n e N \ {0} berechnet. Die Methode soll dafür polynomielle Laufzeit benötigen&lt;br /&gt;
&lt;br /&gt;
b) Kleinste worst-case-Laufzeitklasse angeben:&lt;br /&gt;
&lt;br /&gt;
O( .... )&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 7: Geld wechseln ==&lt;br /&gt;
Gegeben ist ein Betrag, welcher durch möglichst wenige Geldstücke der Grössen { 200, 100, 50, 20, 10, 5, 2, 1 } dargestellt werden werden soll.&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine günstige Kodierung für die Geldstücke an&lt;br /&gt;
&lt;br /&gt;
b) Geben Sie eine Zielfunktion und eine Optimierungsrichtung (max/min) an.&lt;br /&gt;
&lt;br /&gt;
c) Geben Sie ein Greedy-Verfahren zur Lösung des Optimierungsproblems an (als Pseudocode oder verbal).&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Datei:Info3-ss2007-6.png&amp;diff=10224</id>
		<title>Datei:Info3-ss2007-6.png</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Datei:Info3-ss2007-6.png&amp;diff=10224"/>
		<updated>2007-07-26T18:44:57Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10187</id>
		<title>Informatik 3/Gedächtnisprotokoll Klausur SS07</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10187"/>
		<updated>2007-07-26T18:39:24Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: /* Rot/Schwarz-Bäume */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 1. Aufgabe: Multiple Choice ==&lt;br /&gt;
&lt;br /&gt;
Kreuzen Sie jeweils wahr bzw. falsch an:&lt;br /&gt;
* ..&lt;br /&gt;
* Traversierung mit Breitensuche erzeugt einen aufspannenden Baum.&lt;br /&gt;
* Die Höhe eines binären Suchbaumes ist immer um 1 größer, als das Maximum der Höhen seiner Teilbäume.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Backtrackingalgorithmus finden der dieses löst.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Greedy-algorithmus finden der dieses löst.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HashTables ==&lt;br /&gt;
&lt;br /&gt;
Hashtabelle der Größe 4.&lt;br /&gt;
*Hashfunktion: h(k) = k mod 4&lt;br /&gt;
*Kollisonsauflösung&amp;quot;double hashing&amp;quot; a(k) = k+2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Vier Werte mit Schlüsseln einfügen und Kollisionen zählen.&lt;br /&gt;
(A,5) (B,11) (C,9) (D,14)&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1, 3, 1 , 3 .. (kann nicht eingefügt werden)&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
0 blieb leer.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ist die Anzahl der Kollisionen bei double hashing abhängig von der Reihenfolge in der die Elemente eingefügt werden? Begründung, ggf. Beispiel.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AVL-Bäume ==&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Löschen aus AVL-Baum&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rot/Schwarz-Bäume ==&lt;br /&gt;
*Einfügen in RS-Baum&lt;br /&gt;
*Java-Programm schreiben für Höhenberechnung eines Rot-Schwarz-Baumes: int getBlackHeight(Node root)&lt;br /&gt;
** Rot-Schwarz-Baum als gültig vorausgesetzt.&lt;br /&gt;
** Vorgegebene Implementation:&lt;br /&gt;
*** boolean isRed(Node node);&lt;br /&gt;
*** boolean isBlack(Node node);&lt;br /&gt;
*** class Node{ int color; Node left; Node right; }&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== B-Baum == &lt;br /&gt;
* Element in B-Baum einfügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 4: Graphen ==&lt;br /&gt;
a) Baue eine Adjazenzmatrix zu folgendem Graphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4a.png]]&lt;br /&gt;
&lt;br /&gt;
b) Dijkstra auf folgendem Graph ausführen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4b.png]]&lt;br /&gt;
&lt;br /&gt;
c) Definiere (formal oder als Text) den Begriff &amp;quot;aufspannender Baum&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
d) Führe union(D,F) auf folgender, als Wald realisierter disjunkter Menge aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4d.png]]&lt;br /&gt;
&lt;br /&gt;
e) Erstelle den Restflussgraphen zu folgendem Flussgraphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4e.png]]&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 5: Übungsorganisation ==&lt;br /&gt;
Es herrscht grosser Andrang bei der Sprechstunde. Keiner der wartenden Studierenden erinnert sich an die genaue Ankunftsreihenfolge. Einige erinnern sich jedoch noch an die Leute die bereits warteten. Es soll eine ungefähre Ankunftsreihenfolge bestimmt werden.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Name      || wartete bereits&lt;br /&gt;
|-&lt;br /&gt;
| Annett    || Daniel, Edeltraut&lt;br /&gt;
|-&lt;br /&gt;
| Bert      || Anett, Daniel, Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Claudia   || -&lt;br /&gt;
|-&lt;br /&gt;
| Daniel    || Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Edeltraut || Claudia&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
a) Erstelle einen Graph aus den Erinnerungen der wartenden Studierenden.&lt;br /&gt;
&lt;br /&gt;
b) Nun soll die ungefähre Reihenfolge der Studierenden berechnet werden.&lt;br /&gt;
&lt;br /&gt;
Algorithmus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ablauf:&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 6: Dynamisches Programmieren ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;g(m, n) = \left\lbrace\begin{matrix} 42 &amp;amp; m = 0 \or n=0 \\ g(m-1, n-1) + g(m, n-1) &amp;amp; m &amp;gt; 0 \and n &amp;gt; 0 \end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sobald ich rausfinde wie hier tex geht sieht das da oben auch toll aus :)&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine nicht-rekursive Java-Methode an, die g(m,n) für m, n e N \ {0} berechnet. Die Methode soll dafür polynomielle Laufzeit benötigen&lt;br /&gt;
&lt;br /&gt;
b) Kleinste worst-case-Laufzeitklasse angeben:&lt;br /&gt;
&lt;br /&gt;
O( .... )&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 7: Geld wechseln ==&lt;br /&gt;
Gegeben ist ein Betrag, welcher durch möglichst wenige Geldstücke der Grössen { 200, 100, 50, 20, 10, 5, 2, 1 } dargestellt werden werden soll.&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine günstige Kodierung für die Geldstücke an&lt;br /&gt;
&lt;br /&gt;
b) Geben Sie eine Zielfunktion und eine Optimierungsrichtung (max/min) an.&lt;br /&gt;
&lt;br /&gt;
c) Geben Sie ein Greedy-Verfahren zur Lösung des Optimierungsproblems an (als Pseudocode oder verbal).&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Referat_Pr%C3%BCfungen&amp;diff=540</id>
		<title>Referat Prüfungen</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Referat_Pr%C3%BCfungen&amp;diff=540"/>
		<updated>2007-07-26T16:59:02Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das &#039;&#039;&#039;Referat Prüfungen&#039;&#039;&#039; (I B), häufig auch Prüfungsamt genannt, ist ein wichtiger Anlaufpunkt in Eurem [[Studium]]. Hier muss man sich für einige [[Prüfungen]] anmelden, erhält sein (Vor-) [[Diplom]] u.ä.&lt;br /&gt;
Es befindet sich im [[Hauptgebäude]], im Raum H23 (Referat I B b 1, Tel.: 314-22559).&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Achtung:&#039;&#039;&#039; Vom 25. September 2006 bis (voraussichtlich) Ende März 2007 sind die Mitarbeiter umgezogen ins Elektrotechnik-Gebäude am Einsteinufer, Raum 109 – 111, 1. Stock. Erreichbar über den nördlichen, aber nicht den südlichen Übergang vom Elektrotechnik-Neubau.&lt;br /&gt;
&lt;br /&gt;
=== Links ===&lt;br /&gt;
* [http://www.tu-berlin.de/zuv/IB/ Internetseiten des Prüfungsamts]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie: Wichtige Orte]]&lt;br /&gt;
[[Kategorie: Uni-ABC]]&lt;br /&gt;
[[Kategorie: Fakultäts-ABC]]&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10186</id>
		<title>Informatik 3/Gedächtnisprotokoll Klausur SS07</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10186"/>
		<updated>2007-07-26T15:53:36Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: /* 1. Aufgabe: Multiple Choice */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 1. Aufgabe: Multiple Choice ==&lt;br /&gt;
&lt;br /&gt;
Kreuzen Sie jeweils wahr bzw. falsch an:&lt;br /&gt;
* ..&lt;br /&gt;
* Traversierung mit Breitensuche erzeugt einen aufspannenden Baum.&lt;br /&gt;
* Die Höhe eines binären Suchbaumes ist immer um 1 größer, als das Maximum der Höhen seiner Teilbäume.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Backtrackingalgorithmus finden der dieses löst.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Greedy-algorithmus finden der dieses löst.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HashTables ==&lt;br /&gt;
&lt;br /&gt;
Hashtabelle der Größe 4.&lt;br /&gt;
*Hashfunktion: h(k) = k mod 4&lt;br /&gt;
*Kollisonsauflösung&amp;quot;double hashing&amp;quot; a(k) = k+2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Vier Werte mit Schlüsseln einfügen und Kollisionen zählen.&lt;br /&gt;
(A,5) (B,11) (C,9) (D,14)&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1, 3, 1 , 3 .. (kann nicht eingefügt werden)&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
0 blieb leer.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ist die Anzahl der Kollisionen bei double hashing abhängig von der Reihenfolge in der die Elemente eingefügt werden? Begründung, ggf. Beispiel.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AVL-Bäume ==&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Löschen aus AVL-Baum&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rot/Schwarz-Bäume ==&lt;br /&gt;
*Einfügen in RS-Baum&lt;br /&gt;
*Java-Programm schreiben für Höhenberechnung eines Rot-Schwarz-Baumes getBlackHeight(Node root)&lt;br /&gt;
** Rot-Schwarz-Baum als gültig vorausgesetzt.&lt;br /&gt;
** Vorgegebene Implementation:&lt;br /&gt;
*** isRed(Node node);&lt;br /&gt;
*** isBlack(Node node);&lt;br /&gt;
*** class Node{ int color; Node left; Node right; }&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== B-Baum == &lt;br /&gt;
* Element in B-Baum einfügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 4: Graphen ==&lt;br /&gt;
a) Baue eine Adjazenzmatrix zu folgendem Graphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4a.png]]&lt;br /&gt;
&lt;br /&gt;
b) Dijkstra auf folgendem Graph ausführen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4b.png]]&lt;br /&gt;
&lt;br /&gt;
c) Definiere (formal oder als Text) den Begriff &amp;quot;aufspannender Baum&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
d) Führe union(D,F) auf folgender, als Wald realisierter disjunkter Menge aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4d.png]]&lt;br /&gt;
&lt;br /&gt;
e) Erstelle den Restflussgraphen zu folgendem Flussgraphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4e.png]]&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 5: Übungsorganisation ==&lt;br /&gt;
Es herrscht grosser Andrang bei der Sprechstunde. Keiner der wartenden Studierenden erinnert sich an die genaue Ankunftsreihenfolge. Einige erinnern sich jedoch noch an die Leute die bereits warteten. Es soll eine ungefähre Ankunftsreihenfolge bestimmt werden.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Name      || wartete bereits&lt;br /&gt;
|-&lt;br /&gt;
| Annett    || Daniel, Edeltraut&lt;br /&gt;
|-&lt;br /&gt;
| Bert      || Anett, Daniel, Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Claudia   || -&lt;br /&gt;
|-&lt;br /&gt;
| Daniel    || Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Edeltraut || Claudia&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
a) Erstelle einen Graph aus den Erinnerungen der wartenden Studierenden.&lt;br /&gt;
&lt;br /&gt;
b) Nun soll die ungefähre Reihenfolge der Studierenden berechnet werden.&lt;br /&gt;
&lt;br /&gt;
Algorithmus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ablauf:&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 6: Dynamisches Programmieren ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;g(m, n) = \left\lbrace\begin{matrix} 42 &amp;amp; m = 0 \or n=0 \\ g(m-1, n-1) + g(m, n-1) &amp;amp; m &amp;gt; 0 \and n &amp;gt; 0 \end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sobald ich rausfinde wie hier tex geht sieht das da oben auch toll aus :)&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine nicht-rekursive Java-Methode an, die g(m,n) für m, n e N \ {0} berechnet. Die Methode soll dafür polynomielle Laufzeit benötigen&lt;br /&gt;
&lt;br /&gt;
b) Kleinste worst-case-Laufzeitklasse angeben:&lt;br /&gt;
&lt;br /&gt;
O( .... )&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 7: Geld wechseln ==&lt;br /&gt;
Gegeben ist ein Betrag, welcher durch möglichst wenige Geldstücke der Grössen { 200, 100, 50, 20, 10, 5, 2, 1 } dargestellt werden werden soll.&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine günstige Kodierung für die Geldstücke an&lt;br /&gt;
&lt;br /&gt;
b) Geben Sie eine Zielfunktion und eine Optimierungsrichtung (max/min) an.&lt;br /&gt;
&lt;br /&gt;
c) Geben Sie ein Greedy-Verfahren zur Lösung des Optimierungsproblems an (als Pseudocode oder verbal).&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10185</id>
		<title>Informatik 3/Gedächtnisprotokoll Klausur SS07</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10185"/>
		<updated>2007-07-26T15:53:13Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: /* Rot-Schwaz-Bäume */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 1. Aufgabe: Multiple Choice ==&lt;br /&gt;
&lt;br /&gt;
* ..&lt;br /&gt;
* Traversierung mit Breitensuche erzeugt einen aufspannenden Baum.&lt;br /&gt;
* Die Höhe eines binären Suchbaumes ist immer um 1 größer, als das Maximum der Höhen seiner Teilbäume.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Backtrackingalgorithmus finden der dieses löst.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Greedy-algorithmus finden der dieses löst.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HashTables ==&lt;br /&gt;
&lt;br /&gt;
Hashtabelle der Größe 4.&lt;br /&gt;
*Hashfunktion: h(k) = k mod 4&lt;br /&gt;
*Kollisonsauflösung&amp;quot;double hashing&amp;quot; a(k) = k+2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Vier Werte mit Schlüsseln einfügen und Kollisionen zählen.&lt;br /&gt;
(A,5) (B,11) (C,9) (D,14)&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1, 3, 1 , 3 .. (kann nicht eingefügt werden)&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
0 blieb leer.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ist die Anzahl der Kollisionen bei double hashing abhängig von der Reihenfolge in der die Elemente eingefügt werden? Begründung, ggf. Beispiel.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AVL-Bäume ==&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Löschen aus AVL-Baum&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rot/Schwarz-Bäume ==&lt;br /&gt;
*Einfügen in RS-Baum&lt;br /&gt;
*Java-Programm schreiben für Höhenberechnung eines Rot-Schwarz-Baumes getBlackHeight(Node root)&lt;br /&gt;
** Rot-Schwarz-Baum als gültig vorausgesetzt.&lt;br /&gt;
** Vorgegebene Implementation:&lt;br /&gt;
*** isRed(Node node);&lt;br /&gt;
*** isBlack(Node node);&lt;br /&gt;
*** class Node{ int color; Node left; Node right; }&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== B-Baum == &lt;br /&gt;
* Element in B-Baum einfügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 4: Graphen ==&lt;br /&gt;
a) Baue eine Adjazenzmatrix zu folgendem Graphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4a.png]]&lt;br /&gt;
&lt;br /&gt;
b) Dijkstra auf folgendem Graph ausführen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4b.png]]&lt;br /&gt;
&lt;br /&gt;
c) Definiere (formal oder als Text) den Begriff &amp;quot;aufspannender Baum&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
d) Führe union(D,F) auf folgender, als Wald realisierter disjunkter Menge aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4d.png]]&lt;br /&gt;
&lt;br /&gt;
e) Erstelle den Restflussgraphen zu folgendem Flussgraphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4e.png]]&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 5: Übungsorganisation ==&lt;br /&gt;
Es herrscht grosser Andrang bei der Sprechstunde. Keiner der wartenden Studierenden erinnert sich an die genaue Ankunftsreihenfolge. Einige erinnern sich jedoch noch an die Leute die bereits warteten. Es soll eine ungefähre Ankunftsreihenfolge bestimmt werden.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Name      || wartete bereits&lt;br /&gt;
|-&lt;br /&gt;
| Annett    || Daniel, Edeltraut&lt;br /&gt;
|-&lt;br /&gt;
| Bert      || Anett, Daniel, Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Claudia   || -&lt;br /&gt;
|-&lt;br /&gt;
| Daniel    || Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Edeltraut || Claudia&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
a) Erstelle einen Graph aus den Erinnerungen der wartenden Studierenden.&lt;br /&gt;
&lt;br /&gt;
b) Nun soll die ungefähre Reihenfolge der Studierenden berechnet werden.&lt;br /&gt;
&lt;br /&gt;
Algorithmus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ablauf:&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 6: Dynamisches Programmieren ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;g(m, n) = \left\lbrace\begin{matrix} 42 &amp;amp; m = 0 \or n=0 \\ g(m-1, n-1) + g(m, n-1) &amp;amp; m &amp;gt; 0 \and n &amp;gt; 0 \end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sobald ich rausfinde wie hier tex geht sieht das da oben auch toll aus :)&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine nicht-rekursive Java-Methode an, die g(m,n) für m, n e N \ {0} berechnet. Die Methode soll dafür polynomielle Laufzeit benötigen&lt;br /&gt;
&lt;br /&gt;
b) Kleinste worst-case-Laufzeitklasse angeben:&lt;br /&gt;
&lt;br /&gt;
O( .... )&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 7: Geld wechseln ==&lt;br /&gt;
Gegeben ist ein Betrag, welcher durch möglichst wenige Geldstücke der Grössen { 200, 100, 50, 20, 10, 5, 2, 1 } dargestellt werden werden soll.&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine günstige Kodierung für die Geldstücke an&lt;br /&gt;
&lt;br /&gt;
b) Geben Sie eine Zielfunktion und eine Optimierungsrichtung (max/min) an.&lt;br /&gt;
&lt;br /&gt;
c) Geben Sie ein Greedy-Verfahren zur Lösung des Optimierungsproblems an (als Pseudocode oder verbal).&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10184</id>
		<title>Informatik 3/Gedächtnisprotokoll Klausur SS07</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10184"/>
		<updated>2007-07-26T15:51:55Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: /* Aufgabe 7: Geld wechseln */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 1. Aufgabe: Multiple Choice ==&lt;br /&gt;
&lt;br /&gt;
* ..&lt;br /&gt;
* Traversierung mit Breitensuche erzeugt einen aufspannenden Baum.&lt;br /&gt;
* Die Höhe eines binären Suchbaumes ist immer um 1 größer, als das Maximum der Höhen seiner Teilbäume.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Backtrackingalgorithmus finden der dieses löst.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Greedy-algorithmus finden der dieses löst.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HashTables ==&lt;br /&gt;
&lt;br /&gt;
Hashtabelle der Größe 4.&lt;br /&gt;
*Hashfunktion: h(k) = k mod 4&lt;br /&gt;
*Kollisonsauflösung&amp;quot;double hashing&amp;quot; a(k) = k+2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Vier Werte mit Schlüsseln einfügen und Kollisionen zählen.&lt;br /&gt;
(A,5) (B,11) (C,9) (D,14)&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1, 3, 1 , 3 .. (kann nicht eingefügt werden)&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
0 blieb leer.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ist die Anzahl der Kollisionen bei double hashing abhängig von der Reihenfolge in der die Elemente eingefügt werden? Begründung, ggf. Beispiel.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AVL-Bäume ==&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Löschen aus AVL-Baum&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rot-Schwaz-Bäume ==&lt;br /&gt;
*Einfügen in RS-Baum&lt;br /&gt;
*Java-Programm schreiben für Höhenberechnung eines Rot-Schwarz-Baumes getBlackHeight(Node root)&lt;br /&gt;
** Rot-Schwarz-Baum als gültig vorausgesetzt.&lt;br /&gt;
** Vorgegebene Implementation:&lt;br /&gt;
*** isRed(Node node);&lt;br /&gt;
*** isBlack(Node node);&lt;br /&gt;
*** class Node{ int color; Node left; Node right; }&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== B-Baum == &lt;br /&gt;
* Element in B-Baum einfügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 4: Graphen ==&lt;br /&gt;
a) Baue eine Adjazenzmatrix zu folgendem Graphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4a.png]]&lt;br /&gt;
&lt;br /&gt;
b) Dijkstra auf folgendem Graph ausführen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4b.png]]&lt;br /&gt;
&lt;br /&gt;
c) Definiere (formal oder als Text) den Begriff &amp;quot;aufspannender Baum&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
d) Führe union(D,F) auf folgender, als Wald realisierter disjunkter Menge aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4d.png]]&lt;br /&gt;
&lt;br /&gt;
e) Erstelle den Restflussgraphen zu folgendem Flussgraphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4e.png]]&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 5: Übungsorganisation ==&lt;br /&gt;
Es herrscht grosser Andrang bei der Sprechstunde. Keiner der wartenden Studierenden erinnert sich an die genaue Ankunftsreihenfolge. Einige erinnern sich jedoch noch an die Leute die bereits warteten. Es soll eine ungefähre Ankunftsreihenfolge bestimmt werden.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Name      || wartete bereits&lt;br /&gt;
|-&lt;br /&gt;
| Annett    || Daniel, Edeltraut&lt;br /&gt;
|-&lt;br /&gt;
| Bert      || Anett, Daniel, Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Claudia   || -&lt;br /&gt;
|-&lt;br /&gt;
| Daniel    || Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Edeltraut || Claudia&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
a) Erstelle einen Graph aus den Erinnerungen der wartenden Studierenden.&lt;br /&gt;
&lt;br /&gt;
b) Nun soll die ungefähre Reihenfolge der Studierenden berechnet werden.&lt;br /&gt;
&lt;br /&gt;
Algorithmus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ablauf:&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 6: Dynamisches Programmieren ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;g(m, n) = \left\lbrace\begin{matrix} 42 &amp;amp; m = 0 \or n=0 \\ g(m-1, n-1) + g(m, n-1) &amp;amp; m &amp;gt; 0 \and n &amp;gt; 0 \end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sobald ich rausfinde wie hier tex geht sieht das da oben auch toll aus :)&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine nicht-rekursive Java-Methode an, die g(m,n) für m, n e N \ {0} berechnet. Die Methode soll dafür polynomielle Laufzeit benötigen&lt;br /&gt;
&lt;br /&gt;
b) Kleinste worst-case-Laufzeitklasse angeben:&lt;br /&gt;
&lt;br /&gt;
O( .... )&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 7: Geld wechseln ==&lt;br /&gt;
Gegeben ist ein Betrag, welcher durch möglichst wenige Geldstücke der Grössen { 200, 100, 50, 20, 10, 5, 2, 1 } dargestellt werden werden soll.&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine günstige Kodierung für die Geldstücke an&lt;br /&gt;
&lt;br /&gt;
b) Geben Sie eine Zielfunktion und eine Optimierungsrichtung (max/min) an.&lt;br /&gt;
&lt;br /&gt;
c) Geben Sie ein Greedy-Verfahren zur Lösung des Optimierungsproblems an (als Pseudocode oder verbal).&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10183</id>
		<title>Informatik 3/Gedächtnisprotokoll Klausur SS07</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10183"/>
		<updated>2007-07-26T15:47:55Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: /* Aufgabe 6: Dynamisches Programmieren */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 1. Aufgabe: Multiple Choice ==&lt;br /&gt;
&lt;br /&gt;
* ..&lt;br /&gt;
* Traversierung mit Breitensuche erzeugt einen aufspannenden Baum.&lt;br /&gt;
* Die Höhe eines binären Suchbaumes ist immer um 1 größer, als das Maximum der Höhen seiner Teilbäume.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Backtrackingalgorithmus finden der dieses löst.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Greedy-algorithmus finden der dieses löst.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HashTables ==&lt;br /&gt;
&lt;br /&gt;
Hashtabelle der Größe 4.&lt;br /&gt;
*Hashfunktion: h(k) = k mod 4&lt;br /&gt;
*Kollisonsauflösung&amp;quot;double hashing&amp;quot; a(k) = k+2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Vier Werte mit Schlüsseln einfügen und Kollisionen zählen.&lt;br /&gt;
(A,5) (B,11) (C,9) (D,14)&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1, 3, 1 , 3 .. (kann nicht eingefügt werden)&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
0 blieb leer.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ist die Anzahl der Kollisionen bei double hashing abhängig von der Reihenfolge in der die Elemente eingefügt werden? Begründung, ggf. Beispiel.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AVL-Bäume ==&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Löschen aus AVL-Baum&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rot-Schwaz-Bäume ==&lt;br /&gt;
*Einfügen in RS-Baum&lt;br /&gt;
*Java-Programm schreiben für Höhenberechnung eines Rot-Schwarz-Baumes getBlackHeight(Node root)&lt;br /&gt;
** Rot-Schwarz-Baum als gültig vorausgesetzt.&lt;br /&gt;
** Vorgegebene Implementation:&lt;br /&gt;
*** isRed(Node node);&lt;br /&gt;
*** isBlack(Node node);&lt;br /&gt;
*** class Node{ int color; Node left; Node right; }&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== B-Baum == &lt;br /&gt;
* Element in B-Baum einfügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 4: Graphen ==&lt;br /&gt;
a) Baue eine Adjazenzmatrix zu folgendem Graphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4a.png]]&lt;br /&gt;
&lt;br /&gt;
b) Dijkstra auf folgendem Graph ausführen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4b.png]]&lt;br /&gt;
&lt;br /&gt;
c) Definiere (formal oder als Text) den Begriff &amp;quot;aufspannender Baum&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
d) Führe union(D,F) auf folgender, als Wald realisierter disjunkter Menge aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4d.png]]&lt;br /&gt;
&lt;br /&gt;
e) Erstelle den Restflussgraphen zu folgendem Flussgraphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4e.png]]&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 5: Übungsorganisation ==&lt;br /&gt;
Es herrscht grosser Andrang bei der Sprechstunde. Keiner der wartenden Studierenden erinnert sich an die genaue Ankunftsreihenfolge. Einige erinnern sich jedoch noch an die Leute die bereits warteten. Es soll eine ungefähre Ankunftsreihenfolge bestimmt werden.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Name      || wartete bereits&lt;br /&gt;
|-&lt;br /&gt;
| Annett    || Daniel, Edeltraut&lt;br /&gt;
|-&lt;br /&gt;
| Bert      || Anett, Daniel, Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Claudia   || -&lt;br /&gt;
|-&lt;br /&gt;
| Daniel    || Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Edeltraut || Claudia&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
a) Erstelle einen Graph aus den Erinnerungen der wartenden Studierenden.&lt;br /&gt;
&lt;br /&gt;
b) Nun soll die ungefähre Reihenfolge der Studierenden berechnet werden.&lt;br /&gt;
&lt;br /&gt;
Algorithmus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ablauf:&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 6: Dynamisches Programmieren ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;g(m, n) = \left\lbrace\begin{matrix} 42 &amp;amp; m = 0 \or n=0 \\ g(m-1, n-1) + g(m, n-1) &amp;amp; m &amp;gt; 0 \and n &amp;gt; 0 \end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
sobald ich rausfinde wie hier tex geht sieht das da oben auch toll aus :)&lt;br /&gt;
&lt;br /&gt;
a) Geben Sie eine nicht-rekursive Java-Methode an, die g(m,n) für m, n e N \ {0} berechnet. Die Methode soll dafür polynomielle Laufzeit benötigen&lt;br /&gt;
&lt;br /&gt;
b) Kleinste worst-case-Laufzeitklasse angeben:&lt;br /&gt;
&lt;br /&gt;
O( .... )&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 7: Geld wechseln ==&lt;br /&gt;
Hab ich, trag ich gleich ein [[Benutzer:TomyLobo|TomyLobo]]&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10182</id>
		<title>Informatik 3/Gedächtnisprotokoll Klausur SS07</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10182"/>
		<updated>2007-07-26T15:32:13Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: /* Aufgabe 5: Übungsorganisation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 1. Aufgabe: Multiple Choice ==&lt;br /&gt;
&lt;br /&gt;
* ..&lt;br /&gt;
* Traversierung mit Breitensuche erzeugt einen aufspannenden Baum.&lt;br /&gt;
* Die Höhe eines binären Suchbaumes ist immer um 1 größer, als das Maximum der Höhen seiner Teilbäume.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Backtrackingalgorithmus finden der dieses löst.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Greedy-algorithmus finden der dieses löst.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HashTables ==&lt;br /&gt;
&lt;br /&gt;
Hashtabelle der Größe 4.&lt;br /&gt;
*Hashfunktion: h(k) = k mod 4&lt;br /&gt;
*Kollisonsauflösung&amp;quot;double hashing&amp;quot; a(k) = k+2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Vier Werte mit Schlüsseln einfügen und Kollisionen zählen.&lt;br /&gt;
(A,5) (B,11) (C,9) (D,14)&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1, 3, 1 , 3 .. (kann nicht eingefügt werden)&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
0 blieb leer.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ist die Anzahl der Kollisionen bei double hashing abhängig von der Reihenfolge in der die Elemente eingefügt werden? Begründung, ggf. Beispiel.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AVL-Bäume ==&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Löschen aus AVL-Baum&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rot-Schwaz-Bäume ==&lt;br /&gt;
*Einfügen in RS-Baum&lt;br /&gt;
*Java-Programm schreiben für Höhenberechnung eines Rot-Schwarz-Baumes getBlackHeight(Node root)&lt;br /&gt;
** Rot-Schwarz-Baum als gültig vorausgesetzt.&lt;br /&gt;
** Vorgegebene Implementation:&lt;br /&gt;
*** isRed(Node node);&lt;br /&gt;
*** isBlack(Node node);&lt;br /&gt;
*** class Node{ int color; Node left; Node right; }&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== B-Baum == &lt;br /&gt;
* Element in B-Baum einfügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 4: Graphen ==&lt;br /&gt;
a) Baue eine Adjazenzmatrix zu folgendem Graphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4a.png]]&lt;br /&gt;
&lt;br /&gt;
b) Dijkstra auf folgendem Graph ausführen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4b.png]]&lt;br /&gt;
&lt;br /&gt;
c) Definiere (formal oder als Text) den Begriff &amp;quot;aufspannender Baum&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
d) Führe union(D,F) auf folgender, als Wald realisierter disjunkter Menge aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4d.png]]&lt;br /&gt;
&lt;br /&gt;
e) Erstelle den Restflussgraphen zu folgendem Flussgraphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4e.png]]&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 5: Übungsorganisation ==&lt;br /&gt;
Es herrscht grosser Andrang bei der Sprechstunde. Keiner der wartenden Studierenden erinnert sich an die genaue Ankunftsreihenfolge. Einige erinnern sich jedoch noch an die Leute die bereits warteten. Es soll eine ungefähre Ankunftsreihenfolge bestimmt werden.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;prettytable&amp;quot;&lt;br /&gt;
! Name      || wartete bereits&lt;br /&gt;
|-&lt;br /&gt;
| Annett    || Daniel, Edeltraut&lt;br /&gt;
|-&lt;br /&gt;
| Bert      || Anett, Daniel, Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Claudia   || -&lt;br /&gt;
|-&lt;br /&gt;
| Daniel    || Claudia&lt;br /&gt;
|-&lt;br /&gt;
| Edeltraut || Claudia&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
a) Erstelle einen Graph aus den Erinnerungen der wartenden Studierenden.&lt;br /&gt;
&lt;br /&gt;
b) Nun soll die ungefähre Reihenfolge der Studierenden berechnet werden.&lt;br /&gt;
&lt;br /&gt;
Algorithmus:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ablauf:&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 6: Dynamisches Programmieren ==&lt;br /&gt;
Hab ich, trag ich gleich ein [[Benutzer:TomyLobo|TomyLobo]]&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 7: Geld wechseln ==&lt;br /&gt;
Hab ich, trag ich gleich ein [[Benutzer:TomyLobo|TomyLobo]]&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=FreitagsrundenWiki:Bearbeitungshilfe&amp;diff=10222</id>
		<title>FreitagsrundenWiki:Bearbeitungshilfe</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=FreitagsrundenWiki:Bearbeitungshilfe&amp;diff=10222"/>
		<updated>2007-07-26T15:26:04Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://de.wikipedia.org/wiki/Hilfe:Bearbeitungshilfe Bearbeitungshilfe der deutschen Wikipedia]&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=FreitagsrundenWiki:Bearbeitungshilfe&amp;diff=10221</id>
		<title>FreitagsrundenWiki:Bearbeitungshilfe</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=FreitagsrundenWiki:Bearbeitungshilfe&amp;diff=10221"/>
		<updated>2007-07-26T15:25:19Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[http://de.wikipedia.org/wiki/Hilfe:Bearbeitungshilfe]]&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Datei:Info3-ss2007-4e.png&amp;diff=10220</id>
		<title>Datei:Info3-ss2007-4e.png</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Datei:Info3-ss2007-4e.png&amp;diff=10220"/>
		<updated>2007-07-26T15:21:34Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10181</id>
		<title>Informatik 3/Gedächtnisprotokoll Klausur SS07</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10181"/>
		<updated>2007-07-26T15:15:34Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: /* Aufgabe 4: Graphen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 1. Aufgabe: Multiple Choice ==&lt;br /&gt;
&lt;br /&gt;
* ..&lt;br /&gt;
* Traversierung mit Breitensuche erzeugt einen aufspannenden Baum.&lt;br /&gt;
* Die Höhe eines binären Suchbaumes ist immer um 1 größer, als das Maximum der Höhen seiner Teilbäume.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Backtrackingalgorithmus finden der dieses löst.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Greedy-algorithmus finden der dieses löst.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HashTables ==&lt;br /&gt;
&lt;br /&gt;
Hashtabelle der Größe 4.&lt;br /&gt;
*Hashfunktion: h(k) = k mod 4&lt;br /&gt;
*Kollisonsauflösung&amp;quot;double hashing&amp;quot; a(k) = k+2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Vier Werte mit Schlüsseln einfügen und Kollisionen zählen.&lt;br /&gt;
(A,5) (B,11) (C,9) (D,14)&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1, 3, 1 , 3 .. (kann nicht eingefügt werden)&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
0 blieb leer.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ist die Anzahl der Kollisionen bei double hashing abhängig von der Reihenfolge in der die Elemente eingefügt werden? Begründung, ggf. Beispiel.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AVL-Bäume ==&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Löschen aus AVL-Baum&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rot-Schwaz-Bäume ==&lt;br /&gt;
*Einfügen in RS-Baum&lt;br /&gt;
*Java-Programm schreiben für Höhenberechnung eines Rot-Schwarz-Baumes getBlackHeight(Node root)&lt;br /&gt;
** Rot-Schwarz-Baum als gültig vorausgesetzt.&lt;br /&gt;
** Vorgegebene Implementation:&lt;br /&gt;
*** isRed(Node node);&lt;br /&gt;
*** isBlack(Node node);&lt;br /&gt;
*** class Node{ int color; Node left; Node right; }&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== B-Baum == &lt;br /&gt;
* Element in B-Baum einfügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 4: Graphen ==&lt;br /&gt;
a) Baue eine Adjazenzmatrix zu folgendem Graphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4a.png]]&lt;br /&gt;
&lt;br /&gt;
b) Dijkstra auf folgendem Graph ausführen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4b.png]]&lt;br /&gt;
&lt;br /&gt;
c) Definiere (formal oder als Text) den Begriff &amp;quot;aufspannender Baum&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
d) Führe union(D,F) auf folgender, als Wald realisierter disjunkter Menge aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4d.png]]&lt;br /&gt;
&lt;br /&gt;
e) Erstelle den Restflussgraphen zu folgendem Flussgraphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4e.png]]&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 5: Übungsorganisation ==&lt;br /&gt;
Hab ich, trag ich gleich ein [[Benutzer:TomyLobo|TomyLobo]]&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 6: Dynamisches Programmieren ==&lt;br /&gt;
Hab ich, trag ich gleich ein [[Benutzer:TomyLobo|TomyLobo]]&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 7: Geld wechseln ==&lt;br /&gt;
Hab ich, trag ich gleich ein [[Benutzer:TomyLobo|TomyLobo]]&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
	<entry>
		<id>wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10180</id>
		<title>Informatik 3/Gedächtnisprotokoll Klausur SS07</title>
		<link rel="alternate" type="text/html" href="wiki.stageing.freitagsrunde.org//index.php?title=Informatik_3/Ged%C3%A4chtnisprotokoll_Klausur_SS07&amp;diff=10180"/>
		<updated>2007-07-26T15:14:38Z</updated>

		<summary type="html">&lt;p&gt;TomyLobo: /* Aufgabe 4: Graphen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== 1. Aufgabe: Multiple Choice ==&lt;br /&gt;
&lt;br /&gt;
* ..&lt;br /&gt;
* Traversierung mit Breitensuche erzeugt einen aufspannenden Baum.&lt;br /&gt;
* Die Höhe eines binären Suchbaumes ist immer um 1 größer, als das Maximum der Höhen seiner Teilbäume.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Backtrackingalgorithmus finden der dieses löst.&lt;br /&gt;
* Für jedes endliche Optimierungsproblem kann man einen Greedy-algorithmus finden der dieses löst.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== HashTables ==&lt;br /&gt;
&lt;br /&gt;
Hashtabelle der Größe 4.&lt;br /&gt;
*Hashfunktion: h(k) = k mod 4&lt;br /&gt;
*Kollisonsauflösung&amp;quot;double hashing&amp;quot; a(k) = k+2&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Vier Werte mit Schlüsseln einfügen und Kollisionen zählen.&lt;br /&gt;
(A,5) (B,11) (C,9) (D,14)&lt;br /&gt;
A -&amp;gt; 1&lt;br /&gt;
B -&amp;gt; 3&lt;br /&gt;
C -&amp;gt; 1, 3, 1 , 3 .. (kann nicht eingefügt werden)&lt;br /&gt;
D -&amp;gt; 2&lt;br /&gt;
0 blieb leer.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Ist die Anzahl der Kollisionen bei double hashing abhängig von der Reihenfolge in der die Elemente eingefügt werden? Begründung, ggf. Beispiel.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== AVL-Bäume ==&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Einfügen in AVL-Baum&lt;br /&gt;
*Löschen aus AVL-Baum&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Rot-Schwaz-Bäume ==&lt;br /&gt;
*Einfügen in RS-Baum&lt;br /&gt;
*Java-Programm schreiben für Höhenberechnung eines Rot-Schwarz-Baumes getBlackHeight(Node root)&lt;br /&gt;
** Rot-Schwarz-Baum als gültig vorausgesetzt.&lt;br /&gt;
** Vorgegebene Implementation:&lt;br /&gt;
*** isRed(Node node);&lt;br /&gt;
*** isBlack(Node node);&lt;br /&gt;
*** class Node{ int color; Node left; Node right; }&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== B-Baum == &lt;br /&gt;
* Element in B-Baum einfügen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 4: Graphen ==&lt;br /&gt;
a) Baue eine Adjazenzmatrix zu folgendem Graphen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4a.png]]&lt;br /&gt;
&lt;br /&gt;
b) Dijkstra auf folgendem Graph ausführen:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4b.png]]&lt;br /&gt;
&lt;br /&gt;
c) Definiere (formal oder als Text) den Begriff &amp;quot;aufspannender Baum&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
d) Führe union(D,F) auf folgender, als Wald realisierter disjunkter Menge aus:&lt;br /&gt;
&lt;br /&gt;
[[Bild:Info3-ss2007-4d.png]]&lt;br /&gt;
&lt;br /&gt;
e) Erstelle den Restflussgraphen zu folgendem Flussgraphen:&lt;br /&gt;
[[Bild:Info3-ss2007-4e.png]]&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 5: Übungsorganisation ==&lt;br /&gt;
Hab ich, trag ich gleich ein [[Benutzer:TomyLobo|TomyLobo]]&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 6: Dynamisches Programmieren ==&lt;br /&gt;
Hab ich, trag ich gleich ein [[Benutzer:TomyLobo|TomyLobo]]&lt;br /&gt;
&lt;br /&gt;
== Aufgabe 7: Geld wechseln ==&lt;br /&gt;
Hab ich, trag ich gleich ein [[Benutzer:TomyLobo|TomyLobo]]&lt;/div&gt;</summary>
		<author><name>TomyLobo</name></author>
	</entry>
</feed>