PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Baum mit Arrays



bellaciao
04-06-2009, 19:19
Hi,

ich hab mal wieder ein Problem mit meinen Bäumchen. Ich will eigentlich einen B-Baum darstellen, also jeder Knoten soll im Prinzip ein Array sein. Siehe hier: B-Baum Bild (http://upload.wikimedia.org/wikipedia/commons/3/33/B_tree_insertion_example.png)
Bis jetzt habe ich immer mit dem pst-tree Paket gearbeitet, das bietet mir aber solche Form der Knoten nicht.
Wie kann ich das denn so machen?

mechanicus
04-06-2009, 19:58
Hallo,

als Anreiz (bevor Herbert zuschlägt):


\documentclass{article}
\usepackage{pst-tree}
\renewcommand{\TR}[2]{\Tr{\psframe(-0.5,-0.2)(0,0.2)\rput(-0.25,0){#1}\psframe(0,-0.2)(0.5,0.2)\rput(0.25,0){#2}}}
\begin{document}
\psset{nodesep=5pt,treesep=2cm}
\pstree{\TR{1}{2}}{%
\TR{3}{4} \TR{5}{6} \TR{7}{8}}
\end{document}

Gruß
Marco

bellaciao
04-06-2009, 20:11
Hi Marco,


Hallo,

als Anreiz (bevor Herbert zuschlägt):


\documentclass{article}
\usepackage{pst-tree}
\renewcommand{\TR}[2]{\Tr{\psframe(-0.5,-0.2)(0,0.2)\rput(-0.25,0){#1}\psframe(0,-0.2)(0.5,0.2)\rput(0.25,0){#2}}}
\begin{document}
\psset{nodesep=5pt,treesep=2cm}
\pstree{\TR{1}{2}}{%
\TR{3}{4} \TR{5}{6} \TR{7}{8}}
\end{document}

Gruß
Marco

die Loesung funktioniert gut fuer Baeume die im Array immer nur zwei Elemente haben. Jetzt muss ich aber Baeume mit der Ordnung 9 zeichnen (also 9 Elemente im Array). Dann wird das aber ziemlich haesslich mit dem \renewcommand.
Gibts nicht was "simpleres"?

mechanicus
04-06-2009, 20:26
Jetzt muss ich aber Baeume mit der Ordnung 9 zeichnen (also 9 Elemente im Array). Dann wird das aber ziemlich haesslich mit dem \renewcommand.
Gibts nicht was "simpleres"?
Hallo,

genau weiß ich nicht, was du meinst. Du kannst ja anstatt TR redefinieren, die deine Eigenen Boxen erstellen:

\documentclass{article}
\usepackage{pst-tree}
\renewcommand{\TR}[9]{\Tr{\rput(0,0){$\begin{array}{*{9}{|c}|}\hline#1&#2&#3&#4&#5&#6&#7&#8&#9\\\hline\end{array}$}}}
\begin{document}
\psset{nodesep=16pt,treesep=5.2cm}
\pstree{\TR{1}{2}{3}{4}{5}{6}{7}{8}{9}}{%
\TR{1}{2}{3}{4}{5}{6}{7}{8}{9} \TR{1}{2}{3}{4}{5}{6}{7}{8}{9} \TR{1}{2}{3}{4}{5}{6}{7}{8}{9}}
\end{document}

Gruß
Marco

bellaciao
05-06-2009, 15:14
Danke fuer deine Hilfe. Jetzt muss ich halt fuer jeden der Faelle wohl immer ein extra Array bauen (ich brauch Arrays der Groesse 1 bis 18 in meinem Baum :D ).
Falls jemand noch eine andere Loesung kennt (muss optisch auch nicht 100% so aussehen) bin ich sehr dankbar.

Gruss