Für Vorlesungen, bitte die Webseite verwenden. https://flavigny.de/lecture
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

73 lines
2.9KB

  1. \documentclass[uebung]{../../../lecture}
  2. \title{IPI: Übungsblatt 7}
  3. \author{Samuel Weidemaier, Christian Merten}
  4. \begin{document}
  5. \punkte
  6. \begin{aufgabe} LIFO vs. FIFO
  7. \begin{enumerate}
  8. \item Kunden in einer Bäckerei
  9. FIFO: Der erste Kunde wird zu erst bedient
  10. \item Menschen in einem Aufzug
  11. LIFO: Der letzte Mensch verlässt den Aufzug als erstes (bei einer Tür)
  12. \item Lebensmittel in Ihrem Kühlschrank
  13. FIFO: Die ältesten Lebensmittel müssen als erstes verbraucht werden.
  14. \item Autos auf einer Autofähre
  15. Def. (Autofähre). Eine Fähre mit einer Auffahrt und einer Ausfahrt, jedes Auto
  16. befährt die Fähre nur vorwärts.
  17. FIFO: Das erste Auto steht ganz vorne auf der Fähre und verlässt diese als erstes
  18. auf der anderen Seite.
  19. \item Druckanträge auf einen Drucker
  20. FIFO: Der erste Druckauftrag wird als erstes ausgeführt.
  21. \item Besuchen der Knoten eines Baums nach dem Depth-First-Prinzip
  22. FIFO: Die Elemente, die als erstes dem Baum hinzugefügt wurden, also ganz oben
  23. stehen, werden bei der Depth-First-Suche auch als erstes ausgewertet.
  24. \item Rekursive Funktionsaufrufe
  25. LIFO: Der letzte Funktionsaufruf wird als erstes vollständig ausgewertet.
  26. \end{enumerate}
  27. \end{aufgabe}
  28. \begin{aufgabe}
  29. Hase und Igel
  30. \begin{enumerate}[a)]
  31. \item Wenn kein Zyklus vorliegt, wird der \textit{Hase} zuerst auf Null zeigen.
  32. Falls der Zeiger des \textit{Hasen} aber den \textit{Igel} überrundet, muss ein
  33. Zyklus vorliegen, Das wird dann erkannt, wenn \textit{Hase} und \textit{Igel} zum
  34. gleichen Zeitpunkt auf das selbe Element zeigen. Der Abstand von \textit{Hase} zu
  35. \textit{Igel} wird dabei immer kleiner, sodass dies in endlicher Zeit erreicht wird.
  36. Die Länge des Zyklus wird erkannt durch die Differenz der Schrittzahlen, des ersten
  37. Aufeinandertreffens und dem zweiten.
  38. \item siehe \textit{haseigel.cpp}
  39. \end{enumerate}
  40. \end{aufgabe}
  41. \begin{aufgabe}
  42. Warteschlangen
  43. \begin{enumerate}[a)]
  44. \item siehe \textit{queue\_einfach.cpp}
  45. \item siehe \textit{queue.cpp}
  46. \item Die Version der einfach verketteten Liste braucht ca. 2550 mal so lang, wie die zweite. Dies liegt
  47. an der Komplexität O(n) des Hinzufügens eines Elements für
  48. eine einfach verkettete Liste, da hier durch die ganze Liste iteriert werden muss, um das letzte
  49. Element zu finden. Bei einer doppelt verketteten Liste liegt eine Komplexität
  50. von O(1) vor, da hier direkt auf das letzte Element zugegriffen werden kann.
  51. Das Entfernen am Listenanfang ist immer eine O(1) Operation, weil hier direkt in beiden
  52. Fällen der Pointer auf das erste Element verwendet werden kann.
  53. \end{enumerate}
  54. \end{aufgabe}
  55. \end{document}