I'm trying to draw a collaboration graph for C data structures. originally I got dot files from Doxygen which I tried to convert using dot2tex with varying degrees of success, though none produced decent output (ie. no alignment, none of the typical "proper" look of well made TikZ diagrams). This kind of graph is similar to a dependency graph, except it contains references for each data structure link to the linked struct (in other words, an edge/path is connected between the pointer/reference field to the struct it references).
I would like to know if tikz-qtree could work for this purpose, since I want to optimize space usage and dot/graphvix/dot2tex (and manually tweaking the output) is suboptimal
Example of collaboration diagram:

The original dot syntax:
digraph G
{
edge [fontname="Helvetica",fontsize="10",labelfontname="Helvetica",labelfontsize="10"];
node [fontname="Helvetica",fontsize="10",shape=record];
Node1 [label="faultstate",height=0.2,width=0.4,color="black", fillcolor="grey75", style="filled" fontcolor="black"];
Node2 -> Node1 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" entry" ,fontname="Helvetica"];
Node2 [label="vm_map_entry",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$structvm__map__entry.html"];
Node2 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" prev\nnext\nright\nleft" ,fontname="Helvetica"];
Node3 -> Node2 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" object" ,fontname="Helvetica"];
Node3 [label="vm_map_object",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$unionvm__map__object.html"];
Node4 -> Node3 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" sub_map" ,fontname="Helvetica"];
Node4 [label="vm_map",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$structvm__map.html"];
Node2 -> Node4 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" root\nheader" ,fontname="Helvetica"];
Node5 -> Node3 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" vm_object" ,fontname="Helvetica"];
Node5 [label="vm_object",height=0.2,width=0.4,color="black", fillcolor="white", style="filled",URL="$structvm__object.html"];
Node5 -> Node5 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" backing_object" ,fontname="Helvetica"];
Node4 -> Node1 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" map" ,fontname="Helvetica"];
Node5 -> Node1 [dir="back",color="darkorchid3",fontsize="10",style="dashed",label=" first_object\nobject" ,fontname="Helvetica"];
}
The converted TeX syntax (after dot to xdot intermediate conversion via graphviz's dot) from dot2tex (TikZ mode):
\documentclass{article}
\usepackage[x11names, rgb]{xcolor}
\usepackage[utf8]{inputenc}
\usepackage{tikz}
\usetikzlibrary{snakes,arrows,shapes}
\usepackage{amsmath}
\begin{document}
\pagestyle{empty}
\enlargethispage{100cm}
\begin{tikzpicture}[>=latex',line join=bevel,]
\node (Node1) at (28bp,10bp) [draw=black,fill=grey75,record] {faultstate};
\node (Node3) at (213bp,10bp) [draw=black,fill=white,record] {vm\_map\_object};
\node (Node2) at (65bp,178bp) [draw=black,fill=white,record] {vm\_map\_entry};
\node (Node5) at (140bp,88bp) [draw=black,fill=white,record] {vm\_object};
\node (Node4) at (65bp,88bp) [draw=black,fill=white,record] {vm\_map};
\draw [darkorchid3,<-,dashed] (Node3) ..controls (247.46bp,28.666bp) and (252.35bp,32.972bp) .. (256bp,38bp) .. controls (258.83bp,41.907bp) and (274.89bp,84.957bp) .. (266bp,98bp) .. controls (230bp,150.83bp) and (152.79bp,168.33bp) .. (Node2);
\definecolor{strokecol}{rgb}{0.0,0.0,0.0};
\pgfsetstrokecolor{strokecol}
\draw (284bp,88bp) node { object};
\draw [darkorchid3,<-,dashed] (Node2) ..controls (120bp,183.99bp) and (123bp,181.48bp) .. (123bp,178bp) .. controls (123bp,172.43bp) and (115.33bp,169.35bp) .. (Node2);
\draw (134bp,190bp) node { prev};
\draw (134bp,179bp) node {next};
\draw (134bp,168bp) node {right};
\draw (134bp,157bp) node {left};
\draw [darkorchid3,<-,dashed] (Node2) ..controls (32.825bp,146.58bp) and (12.591bp,123.18bp) .. (4bp,98bp) .. controls (-5.6625bp,69.676bp) and (12.453bp,35.188bp) .. (Node1);
\draw (16.5bp,88bp) node { entry};
\draw [darkorchid3,<-,dashed] (Node5) ..controls (185.12bp,92.844bp) and (188bp,90.849bp) .. (188bp,88bp) .. controls (188bp,83.324bp) and (180.25bp,80.95bp) .. (Node5);
\draw (222.5bp,88bp) node { backing\_object};
\draw [darkorchid3,<-,dashed] (Node4) ..controls (35.128bp,68.878bp) and (31.433bp,64.745bp) .. (29bp,60bp) .. controls (22.399bp,47.129bp) and (24.124bp,29.744bp) .. (Node1);
\draw (40bp,49bp) node { map};
\draw [darkorchid3,<-,dashed] (Node5) ..controls (179.37bp,70.063bp) and (185.87bp,65.478bp) .. (191bp,60bp) .. controls (201.97bp,48.297bp) and (208.13bp,30.2bp) .. (Node3);
\draw (228.5bp,49bp) node { vm\_object};
\draw [darkorchid3,<-,dashed] (Node5) ..controls (131.95bp,58.339bp) and (126.18bp,45.94bp) .. (117bp,38bp) .. controls (100.03bp,23.315bp) and (75.247bp,16.617bp) .. (Node1);
\draw (158bp,50bp) node { first\_object};
\draw (158bp,39bp) node {object};
\draw [darkorchid3,<-,dashed] (Node4) ..controls (61.38bp,57.989bp) and (62.694bp,45.955bp) .. (70bp,38bp) .. controls (83.331bp,23.486bp) and (133.52bp,16.635bp) .. (Node3);
\draw (91.5bp,49bp) node { sub\_map};
\draw [darkorchid3,<-,dashed] (Node2) ..controls (65bp,139.31bp) and (65bp,111.67bp) .. (Node4);
\draw (80bp,128bp) node { root};
\draw (80bp,117bp) node {header};
\end{tikzpicture}
\end{document}
Output obtained:

Note: this is without --tikzedgelabels. Using the option yields a broken diagram. dot2tex likes straight edges only, so bent curves/edges connecting nodes don't play along.
Output wanted:
No hideous
\draw -(coordinate)constructs. I want TikZ-style edge labels and no fixed drawing points. I want the layout to be fluid and have optimal distribution of the diagram nodes in the canvas.--tikzedgelabelswon't cut it. just a FYI, i can see it coming in the comments.

