I want to draw a binary tree using TiKZ (more exactly a rooted binary DAG, but there is only one occurence of node with two parents). I managed to obtain a tree using the standard TiKZ graph layouts:
Here is the corresponding code (to compile with LuaTeX):
\documentclass{standalone}
\usepackage{tikz}
\usetikzlibrary{graphs,graphdrawing,graphdrawing.trees}
\begin{document}
\begin{tikzpicture}
\begin{scope}%
[every node/.style={draw,circle}]
\graph [fresh nodes, math nodes] {
b -> {
c ->{
b -> {
"\Lambda", "\emptyset"
},
"\emptyset"
},
a -> {
b -> {
a -> {
"\Lambda", "\emptyset"
},
a -> {
M0/a -> {
"\Lambda",
c -> {
"\Lambda", "\emptyset"
}
},
"\emptyset"
}
},
c -> {
a -> {
(M0),
"\emptyset"
},
"\emptyset"
}
}
}
};
\end{scope}
\end{tikzpicture}
\end{document}
however the tree would be more legible if the "left" child of a node is placed under its parent (with the exception of the node pointing to another part of the graph), and the "right" child of a node is placed on its right. Note that this behavior is reversed in my tentative…
Is there some way to parameterize graphs to obtain this?

