Visualizzazione dei risultati da 1 a 2 su 2

Discussione: Da Albero a array

  1. #1

    Da Albero a array

    Salve, mi servirebbe un metodo che, dato un albero, restiuisca un array con le chiavi dell'albero.

    Vi scrivo la class che ho creato per farvi vedere come è strutturato l'albero ecc

    class BSTNode {
    public BSTNode left, right;
    public int key;
    }

    public class BSTUtility {
    public static void main(String[] args) {

    BSTNode root = new BSTNode();
    BSTNode a = new BSTNode();
    BSTNode b = new BSTNode();

    root.key = 20;
    root.left = a;
    root.right = b;

    a.key = 15;
    a.left = null;
    a.right = null;

    b.key = 25;
    b.left = null;
    b.right = null;

    StampaArray(bstToArray(root));



    }

    // Dato un BST, crea un array delle sue chiavi
    public static int[] bstToArray(BSTNode root) {
    // Ricerca della dimensione dell'array
    int dim = size(root);
    if(dim<=0) {
    throw new RuntimeException("Albero vuoto");
    }
    // Riempire l'array con le chiavi dell'albero
    int[] arrayKey = riempi(root, dim);
    return arrayKey;

    }

    // Dato un BST e un intero k, crea un array di dimensione k con le chiavi dell'albero
    public static int[] riempi(BSTNode root, int k) {
    // k > 0
    int[] f = new int[k];
    for(int i=0; i<f.length; i++) {
    // come si implementa?
    }
    return f;

    }




    public static int size(BSTNode root) {
    if (root == null) return 0;
    else return (1 + size(root.left) + size (root.right));
    }

    public static void StampaArray(int[] x) {
    for(int i=0; i<x.length; i++) {
    System.out.println(x[i] + " ");
    }
    }


    }

    Grazie in anticipo

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    43
    Dovresti studiare un po più di teoria sugli alberi ....
    Prova un po così

    Codice PHP:

    public static void visitaInfissa(BSTUtility A, List )
    { if ( 
    A!= null )
    visitaInfissa(A.figlio(SIN),L); //**
    L.add(A.getKey()); //**
    visitaInfissa(A.figlio(DES),L); //**
    }

    Alla fine il metodo

    }
    Codice PHP:
    static int[] riempi(List L) {
     return(int) 
    L.toArray() ; 
    by yakino @doc

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.