PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Huffman-Code in latex darstellen



d@tenmaulwurf
04-01-2007, 17:53
Hallo!

Ich muss den Huffman-Code in meiner Arbeit erklären und würde diesen gerne grafisch nativ in latex darstellen (also kein eingebundenes Images).
Ich stell mir so vor, dass ich Kreise / Bubbles erzeuge, da einen Wert / Bruch reinschreibe und diese beliebig miteinander verbinden kann, ohne dass sie sich in die Haare bekommen, also automatisiert die Anordnung der Bubbles geschieht..
Zur Veranschaulichung, sowas in der Art: http://de.wikipedia.org/wiki/Bild:PraefixCodeBaum.png oder http://www.inf.fh-flensburg.de/lang/algorithmen/code/huffman/huff7.gif

Vielen Dank schonmal im voraus,

d@tenmaulwurf

sofa-surfer
04-01-2007, 20:36
Hallo,

vielleicht findest du ja hier Inspiration:
http://tug.org/PSTricks/main.cgi?file=pst-tree/pst-tree

Matthias

localghost
04-01-2007, 23:38
Einfacher geht es nicht. Die Anleitung zu pst-tree (ftp://dante.ctan.org/tex-archive/help/Catalogue/entries/pst-tree.html) beschreibt das auch recht ausführlich.

d@tenmaulwurf
08-01-2007, 23:05
Jup, echt genial.

Vielen Dank!

Habe aber ein kleines Problem noch:

Ich habe jetzt shcöne Bäume, doch anfangs stelle ich die Wertkeiten in einzelnen Knoten dar.



\pstree{\MyNode{${b}_{\frac{3}{23}}$}}

\pstree{\MyNode{${a}_{\frac{2}{23}}$}}

\pstree{\MyNode{${o}_{\frac{6}{23}}$}}


Diese sind jetzt nebeneinander absolut zusammengepresst. Leerzeichen ändern hier leider auch nichts.
Komischerweise kompiliert das Script auch nicht, wenn ich die Leerzeilen zwischen den ps-tree's weglasse, keine Ahnung ob das irgendwie eine Ursache hat.

Brauche nur einen kleinen Abstand zwischen diesen "einzelnen Kügelchen".

Vielen Dank im voraus,

d@tenmaulwurf

d@tenmaulwurf
09-01-2007, 10:14
OK, als workaround hab ich das jetzt mit ein paar "\ " geforced.

d@tenmaulwurf
09-01-2007, 22:25
Habe jetzt nur noch ein Problem.
Ich habe mit folgendem Code reine Knoten ohne Blätter erstellt:


\begin{figure}
\pstree{\MyNode{${b}_{\frac{1}{8}}$}}
\ \ \
\pstree{\MyNode{${a}_{\frac{2}{8}}$}}
\ \ \
\pstree{\MyNode{${o}_{\frac{3}{8}}$}}
\ \ \
\pstree{\MyNode{${l}_{\frac{4}{8}}$}}

\renewcommand{\figurename}{Baum}
\caption{Wertigkeiten der einzelnen Elemente der Zeichenkette}
\label{huffman-0}
\end{figure}


Zur Erklärung, so wird auch im Wikipedia-Artikel verfahren (um zu verdeutlichen, warum ich nur Knoten haben will fürs erste (http://de.wikipedia.org/wiki/Bild:ShannonCodeAlg.png)).

Das Problem an der Sache ist, dass hier unter diesen einzelnen Knoten extrem viel Platz ist, vermutlich von vorne herein reserviert für Wege zu Blättern. Das sieht ziemlich beschissen aus, wenn ich da meine n Knoten habe, darunter geschätzt über 4 Leerzeilen und darunter dann erst wieder Text und der "echte" Baum kommt.

Kann ich irgendwie die Höhe nach unten des figure-Objekts verändern bzw. ihm sagen, er soll da ein Stück "abschneiden"?

Vielen Dank,

d@tenmaulwurf