Мне нужно создать дерево, которое может иметь до n подузлов для каждого узла (т.е. это не двоичное дерево).Как мне это сделать?
Вместо того, чтобы иметь что-то вроде этого:
Node* left; Node* right;
, что вы обычно делаете для двоичного дерева, вы можете сделать что-то вроде:
Node** children; int size;
затем malloc соответствующий размер для количества указателей.
malloc
Вы ищете n-арные деревья - http://oopweb.com/Algorithms/Documents/PLDS210/Volume/n_ary_trees.html Создание должно быть довольно простым из информации в этой и других ссылках (в Google).
GLib обеспечивает реализацию N-арных деревьев. Если вы не можете использовать glib, вам следует искать другую библиотеку, которая соответствует вашим потребностям, или свернуть свое собственное N-арное дерево. В простой версии узел будет содержать связанный список или массив с указателями на дополнительные узлы.