I know this is quite an old topic, but I've came to this problem recently.
This is my solution, but remember I do not master Latex or Tikz. So I'm sure many things could be done in a better way...
\documentclass[11pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[portuguese]{babel}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{tikz}
\usetikzlibrary{arrows, shapes, trees, calc, positioning}
\tikzstyle{key} = [
circle,
fill = white,
dotted,
thick,
draw
]
\tikzstyle{vazio} = [
draw = none,
fill = none,
]
\tikzstyle{no} = [
rectangle split,
rectangle split horizontal,
rectangle split parts = #1,
rectangle split draw splits = false,
rounded corners,
fill = black!15,
draw = black!85,
thick,
anchor = center,
minimum height = 1.8em,
]
\tikzstyle{no b} = [
rectangle split,
rectangle split horizontal,
rectangle split parts = #1,
rectangle split empty part width = 1.3ex,
rectangle split draw splits = false,
rounded corners,
fill = black!15,
draw = black!85,
thick,
anchor = center,
minimum height = 1.8em,
]
\tikzstyle{edge from parent} = [
thick,
-latex,
draw = black,
]
\tikzset{
child/.style = {
edge from parent path = {(\tikzparentnode.west)
++(0.06cm+#1*0.65cm, -0.18cm) --
(\tikzchildnode)},
},
nil/.style = {
edge from parent = {thick, -square, draw = gray},
},
}
\begin{document}
\begin{tikzpicture}[scale = 0.7, transform shape]
\tikzstyle{every node} = [no b]
\tikzstyle{level 1} = [sibling distance = 11cm]
\tikzstyle{level 2} = [sibling distance = 2.7cm]
\node (tree) {42}
child[child = 0] {node {19 \nodepart{two} 33}
child[child = 0] {node {10 \nodepart{two} 15 \nodepart{three} 16
\nodepart{four} 18}}
child[child = 1] {node {22 \nodepart{two} 27 \nodepart{three} 29}}
child[child = 2] {node {35 \nodepart{two} 40}}
}
child[child = 1] {node {61 \nodepart{two} 74 \nodepart{three} 85
\nodepart{four} 95}
child[child = 0] {node {47 \nodepart{two} 49 \nodepart{three} 53}}
child[child = 1] {node {65 \nodepart{two} 68 \nodepart{three} 72}}
child[child = 2] {node {77 \nodepart{two} 81}}
child[child = 3] {node {88 \nodepart{two} 90 \nodepart{three} 93
\nodepart{four} 94}}
child[child = 4] {node {97 \nodepart{two} 98}}
}
;
\draw [latex-, thick] (tree) -- ++ (0, 1);
\end{tikzpicture}
\end{document}
Hope this helps someone and perhaps someone can show me a better way to accomplish this task... :)
rectangle split draw splits=<true/false>. The multipart nodes are well described in thepgfmanual. – Jake May 13 '12 at 19:20