Visualizzazione dei risultati da 1 a 3 su 3

Discussione: [C++] ALberi

  1. #1

    [C++] ALberi

    Ciao a tutti,
    cercavo un opinione sulla mia idea:

    io devo implementare in C++ un albero RedBlack utilizzando l'ereditarietà. Io avevo pensato di costruirmi una classe base dove ogni elemento del mio albero oltre alle info ha i puntatori up sx e dx, successivamente il mio alberto RB deriva da quest'ultima classe.

    La mia perplessità nasce nel momento in cui chiamo il costruttore del mio RB. In particolare se chiamo il costruttore esso automaticamente chiamerà il costruttore della classe base. Il problema sta che nel istanziare il mio albero vorrei creare 2 elementi della classe base, uno radice e un elemento nil, quindi chiamando il costruttore se ne crea solo uno.

    Adesso mi chiedevo è teoricamente errato se dentro al costruttore della classe derivata dichiaro un new elemento e poi me lo gestisco come mi pare, in questo modo avro due elementi base uno che mi viene istanziato direttamente chiamando il costruttore derivato e l'altro creato da me.

    Non so se sono stato abbastanza chiaro, cmq grazie a tutti x l'attenzione.

  2. #2
    Utente bannato
    Registrato dal
    Apr 2012
    Messaggi
    510
    Non serve istanziare un nuovo elemento se vuoi avere un puntatore con valore NULL.
    Basta istanziarne uno: la radice ed essa avrà due campi che rappresenteranno il figlio sinistro e destro, ed avranno valore NULL all' inizio.
    Se tu hai un puntatore non ti serve allocare memoria con new per settargli il valore a NULL.
    Comunque ti suggerisco di distinguere il concetto di nodo dal concetto di albero.Puoi fare una classe nodo che contiene i puntatori ai suoi figli.

  3. #3
    Originariamente inviato da Who am I
    Non serve istanziare un nuovo elemento se vuoi avere un puntatore con valore NULL.
    Basta istanziarne uno: la radice ed essa avrà due campi che rappresenteranno il figlio sinistro e destro, ed avranno valore NULL all' inizio.
    Se tu hai un puntatore non ti serve allocare memoria con new per settargli il valore a NULL.
    Comunque ti suggerisco di distinguere il concetto di nodo dal concetto di albero.Puoi fare una classe nodo che contiene i puntatori ai suoi figli.
    Grazie mille, cmq la mia classe Nodo ha i puntatori ai 2 figli e al padre.

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 © 2024 vBulletin Solutions, Inc. All rights reserved.