さらにいうと、このプログラムはmainで
root = MakeRootNode( ...
ってかいてあるんだから戻り値を期待してるはず。
それなのにvoid MakeRootNode(...)じゃだめだろ。

なんだか、アルゴリズムの理解度よりもCの理解度が足りないな。