Visualizzazione dei risultati da 1 a 3 su 3

Discussione: algoritmi

  1. #1

    algoritmi

    Salve a tutti cari amici del forum...
    Avrei da chiedervi una mano per quanto concerne degli algoritmi ricorsivi sugli alberi binari. Ora... non sono prorpio terra terra con Java ma ho quanlche problema a sviluppare alcuni metodi ricorsivi....
    Mi spiego meglio... Un caso particolare è quello che avendo a disposizione una interfaccia come la seguente:

    Si consideri la seguente interfaccia che descrive alberi binari in cui la parte informativa di ogni nodo sia un intero.

    public interface AlberoBinario{
    int val();
    AlberoBinario sin();
    AlberoBinario des();
    }

    Implementare il metodo

    boolean positiviNodiProfondi(AlberoBinario a, int k);

    che restituisce true se e solo se la parte informativa di tutti i nodi che si trovano ad un livello maggiore o uguale a k (la radice ha livello 0) dell’albero a è maggiore o uguale a zero.

    Io ho provato ad abbozzare una soluzione, ma nn corretta e non riesco a capire dove sbaglio! Se qualcuno gentilmente potrebbe indirizzarmi nella via giusta:

    public satatic boolean positiviNodiProfondi(AlberoBinario a, int k)
    {
    if(a==null)return false;
    if(a.val()>=0&&k>=0)return true;
    return positiviNodiProfondi(a.sin(),k-1)&&positiviNodiProfondi(a.des(),k-1);

  2. #2
    scusate ho fatto un errore.
    il codice che ho sviluppato è questo:

    public satatic boolean positiviNodiProfondi(AlberoBinario a, int k)
    {
    if(a==null)return false;
    if(a.val()>=0&&k<=0)return true;
    return positiviNodiProfondi(a.sin(),k-1)&&positiviNodiProfondi(a.des(),k-1);
    }
    ma l'algoritmo funziona solo se l'albero è di tre nodi, ovvero dalla radice, dal figlio sinistro e destro. ma nn capisco dove sbaglio!

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    Di nuovo, hai già questa discussione attiva, quindi non aprirne altre.

    Inoltre, il codice va riportato usando il tag [CODE].

    Leggi il Regolamento e rispettalo, per favore.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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.