Cara não vai ser nada muito trivial, eu escolheria uma arvore N-Area como estrutura de dados, mas olha esse exemplo que o cara fez com uma arvore binária( não sei exatamente se é a estrutura de dados ideal, mas gostei da abordagem).
http://almeidamindcrazy.blogspot.com.br/2014/04/javajabathehut-linkedbinarytrees-arvore.html
Para escrever sua resposta aqui, entre ou crie uma conta.
Compartilhar