Für Vorlesungen, bitte die Webseite verwenden. https://flavigny.de/lecture
No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

71 líneas
2.9KB

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