Visualizzazione dei risultati da 1 a 4 su 4

Visualizzazione discussione

  1. #1
    Utente di HTML.it L'avatar di el92
    Registrato dal
    Dec 2014
    Messaggi
    177

    [java] lunghezza nodo sinistro di un albero

    Ciao ho costruito un labero binario:

    codice:
    class SimpleNode {
    private SimpleNode left;
    private SimpleNode right;
    private String content;
    SimpleNode(String content){
        if(content==null){
            throw new RuntimeException("argomento nullo");
        }
        this.content=content;
    }
    public String getContent(){
        return content;
    }
    public boolean setLeftNode(SimpleNode n){
        if(n.left==null&&n!=null){
            left=n;
            return true;
        }else
        return false;
        
    }
    
    
    public SimpleNode getLeft(){
        return left;
    }
    public boolean setRightNode(SimpleNode n){
    if(n.right==null&&n!=null){
            right=n;
            return true;
        }else
        return false;
    }
    public SimpleNode getRight(){
        return right;
    }
    
    public void add(SimpleNode n){
        if(left==null){
            setLeftNode(n);
         }else if(right==null){
            setRightNode(n);
    }
    }
    //calocolo lunghezza nodo sinistro
    private static int lengthLeft(SimpleNode node) { 
      if (node == null){ return(0); 
      }else
        
        return lengthLeft(node.getLeft()) + 1; 
      } 
    
    
    public String toString(){
        String s="";
        return s+="nodo: "+content+"\nleft: "+getLeft()+"\nright: "+getRight();
    }
    }
    Il mio problema è il metodo lengthLeft(SimpleNode)...non mi calcola la lunghezza del nodo sinistro...infatti se eseguo da main:
    codice:
    public static void main(String[] args){
        SimpleNode n=new SimpleNode("70");
        boolean b=n.setLeftNode(new CleverNode("40"));
        boolean bz=n.setLeftNode(new CleverNode("50"));
        boolean bx=n.setLeftNode(new CleverNode("80"));
        boolean bc=n.setLeftNode(new CleverNode("90"));
        System.out.println(lengthLeft(n));
        }    
    }
    Il terminale stampa 2...e non 4...come posso calcolare la lunghezza del nodo sinistro del mio albero?
    Ultima modifica di el92; 12-06-2015 a 11:16

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.