Najlepiej najpierw przekształcić to w strukturę typu drzewa:
Menu Top
|
Nodes with NULL p_id
|
Children
Możesz to zrobić, tworząc klasę MenuNode, która ma tablicę dzieci. Nie musisz tego robić w ten sposób, ale znacznie ułatwi to utworzenie funkcji rekurencyjnej do wyświetlania menu.