Creio que um algoritmo em árvore seja mais adequado. Neste caso, a
estrutura em banco de dados (codigo,codigo cliente, FK_pro nivel acima 
etc...),
e um algoritmo que resgata os registros do banco
(possivelmente recursivo) para montar a árvore e percorrer a cada nova 
compra.
	Robson
	  |
    ----------------
   |		   |
Jose 		Carlos
   |
Maria
   |
Pedro