Ir ao conteúdo
  • Cadastre-se
Schepp

Método deve contar o número de filhos totais, diretos ou não, ...

Recommended Posts

//Método deve contar o número de filhos totais, diretos ou não, de determinado nodo recebido por parâmetro.

//public int contaFilhosNodo(GeneralTree T);



public class GeneralTree {
    private Object key;
    private int degree;
    private List list; 

    public Object getKey ()
    { return key; }
    
    public GeneralTree (Object key) {
        this.key = key;
        degree = 0;
        list = new List ();
    }

    public GeneralTree getSubtree (int i) {
        if (i < 0 || i >= degree)
            throw new IndexOutOfBoundsException ();
        Node ptr = list.getFirst ();
        for (int j = 0; j < i; ++j)
            ptr = ptr.getNext ();
        return (GeneralTree) ptr.getData ();
    }

    public void attachSubtree (GeneralTree t) {
        list.insertAtBack (t);
        ++degree;
    }

    public GeneralTree detachSubtree (GeneralTree t) throws UnderflowException {
        list.remove (t);
        --degree;
        return t;
    }

    public static void main (String args[]){
        GeneralTree raiz = new GeneralTree("D");
        GeneralTree t2 = new GeneralTree("E");
        GeneralTree t3 = new GeneralTree("G");
        raiz.attachSubtree(t2);
        raiz.attachSubtree(t3);
        t2.attachSubtree(new GeneralTree("F"));
        t2.getSubtree(0).attachSubtree(new GeneralTree("A"));
        t2.getSubtree(0).attachSubtree(new GeneralTree("B"));
        t2.getSubtree(0).attachSubtree(new GeneralTree("N"));
        t2.getSubtree(0).attachSubtree(new GeneralTree("Y"));
        t3.attachSubtree(new GeneralTree("H"));
        t3.attachSubtree(new GeneralTree("J"));
        t3.attachSubtree(new GeneralTree("M"));
   
        t3.getSubtree(0).attachSubtree(new GeneralTree("I"));
        t3.getSubtree(1).attachSubtree(new GeneralTree("K"));
        t3.getSubtree(1).attachSubtree(new GeneralTree("L"));
    }

    
    
      public void print(GeneralTree T){
          System.out.print(T.getKey().toString() + "(" + T.degree +")" + "\n..");
          print(T);
          System.out.println();
        }
         public void printr(GeneralTree T){
             Node current = (Node) T.list.getFirst();
             GeneralTree gt;
             for(int i =0; i<T.degree; i++){
                 gt = (GeneralTree) current.getData();
                 System.out.print(gt.getKey().toString() + "("+ gt.degree + ")" + ",");
                 print(gt);
                 current = current.getNext();
                }
            }
//public int contaFilhosNodo(GeneralTree T);?
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Schepp Isso é uma dúvida? Ou está só compartilhando conhecimento?

Por favor edite seu post inicial incluindo algum texto explicativo do problema/ou método criado por você. Dê o máximo de detalhes.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×