aboutsummaryrefslogtreecommitdiff
path: root/Info/11/NTG/1/Dijkstra/pseudocode.tex
blob: 944b3b99c72d61f38e55f4222ef707f181f37c07 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
\documentclass{standalone}
\usepackage[ngerman]{babel}
\usepackage{amsmath}
\usepackage[most]{tcolorbox}
\usetikzlibrary{decorations.pathmorphing}
\tikzset{decoration={random steps, segment length=5mm, amplitude=0.6pt}}
\usepackage{xcolor}
\newcommand{\revealtexton}[3]{#1}

\newtcolorbox{pseudocode}{
  coltitle=white,
  colbacktitle=gray!30!black,
  colframe=gray!30!black,
  enhanced,
  title=\bfseries {\large P}SEUDOCODE,
  attach boxed title to top right={yshift=-0.28cm, xshift=-5mm},
  frame code={
    \draw[decorate, draw=gray!30!black] (frame.north east) rectangle (frame.south west);
  },
}
\newcommand\textvtt[1]{{\normalfont\fontfamily{cmvtt}\selectfont #1}}
\usepackage{changepage}

\begin{document}
\begin{pseudocode}
\textvtt{Weise allen Knoten die beiden Eigenschaften „Distanz“ und „Vorgänger“ zu.}
\vspace{0.1cm}

\textvtt{Initialisiere die Distanz des Startknoten mit \revealtexton{0}{1}{2} und die der anderen Knoten mit \revealtexton{$\infty$.}{2}{3}}
\vspace{0.1cm}

\textvtt{Füge den Startknoten der Warteschlange hinzu.}
\vspace{0.1cm}

\textvtt{Solange die Warteschlange nicht leer ist ...}
\vspace{0.1cm}

\begin{adjustwidth}{0.5cm}{}
\textvtt{Nimm den Knoten mit \revealtexton{minimaler}{3}{4} (aufsummierter) Distanz aus der Warteschlange.}
\vspace{0.1cm}

\textvtt{Markiere diesen Knoten.}
\vspace{0.1cm}

\textvtt{Berechne für alle \revealtexton{unmarkierten}{4}{5} Nachbarn die Gesamtdistanz des Pfades zum Startknoten ($\text{Kantengewicht} + \text{Distanz des aktuellen Knotens}$) und füge sie der Warteschlange hinzu.}
\vspace{0.1cm}

\textvtt{Ist dieser Wert kleiner als die für diesen Nachbarn gespeicherte Distanz, aktualisiere sie und speichere den \revealtexton{aktuellen Knoten}{5}{6} als Vorgänger.}
\end{adjustwidth}
\end{pseudocode}
\end{document}