Problemas com recursividade gerando uma arvore

6 respostas
M

Crie uma função recursiva que retorne uma estrutura em árvore do seguinte objeto:

6 Respostas

ViniGodoy

E quais são os problemas?

M

eu esqueci como organizar em arvore sem ser arvore binaria.
Eu lembro que tinha que calcular a profundidade… Procurei na internet mas n achei muitas respostas e agora estou aqui no guj.

Queria uma ajuda para fazer oq exercicio esta pedindo. Pode ser em visual basic, C ou JAVA

ViniGodoy

Dê uma olhada nos padrões Composite e Visitor.

M

cara ja olhei. acho q estou com problemas de interpretações de texto. Eu sei programa em java mas eu nao estou entendo como resolver esse problema. Se voce puder me ajudar… sem ficar dizendo o que estudar pq eu ja estou fazendo…

Jeanfbs

cara algo interessante em C seria voce utilizar o struct Nome{ /*Campos : Codigo\ Nome\ Nivel*/ }, assim voce pode retornar um estrutura de dados semelhante a uma arvore, porém os campos voce é quem define.

douglaskd
mr.michels:
cara ja olhei. acho q estou com problemas de interpretações de texto. Eu sei programa em java mas eu nao estou entendo como resolver esse problema. Se voce puder me ajudar.... sem ficar dizendo o que estudar pq eu ja estou fazendo...

cara eu acho que é assim, tem o No(container) que tem uma lista para os Nós(folhas e ou galhos) e guarda seu objeto em si, no exemplo usei string, mas pode ser qualquer objeto, o importante é a estrutura :

public class No {

	String texto;

	ArrayList<No> nos = new ArrayList<No>();

	public No(String texto) {

		this.texto = texto;

	}

	public No addChild(No no) {

		nos.add(no);
		
		return no;

	}

	public ArrayList<No> getChilds() {

		return nos;

	}

	public void removeChild(int i) {

		nos.remove(i);

	}
	
	public No getChild(int i) {

		return nos.get(i);

	}
	
	public void imprimirFilhos(){
		
		for(No filho : this.getChilds()){
			
			System.out.println(filho.texto);
			filho.imprimirFilhos();
		}
		
	}
	
}
public static void main(String[] args) {
	No arvore = new No("Inicio");
	
	No A = arvore.addChild(new No("A"));
	
	No filhoA = A.addChild(new No("filho de A"));
	No segundofilhoA = A.addChild(new No("segundo filho de A"));
	
	No filhofilhoA = filhoA.addChild(new No("filho do filho de A"));
	
	arvore.imprimirFilhos();

}

ai você tem que ir adequando de acordo com sua necessidade.

Criado 16 de junho de 2013
Ultima resposta 26 de jul. de 2013
Respostas 6
Participantes 4