Pages: [1]   Go Down
Print
Author Topic: BT con chiavi ripetute..  (Read 707 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Vivynz
Forumista Eroico
*****
Offline Offline

Gender: Female
Posts: 2.033


File reality.sys corrupted, Reboot Universe? Y/N


« on: 20-05-2009, 09:48:29 »

abbiamo visto il codice per inserimento, ricerca ecc ecc per gli alberi binari di ricerca...ma se invece la struttura dovesse essere un albero binario con chiavi ripetute???come fare??quali metodi modificare e come?chiedo perchè ci sono esercizi che richiedono questo tipo di struttura..
Logged

L'odrine delle lttere dnetro una praorla non è ipmortatne, la sloa cosa ipmortatne è che la pmria e l'utlima ltteera sinao nel potso giutso. Il rseto può essree in un dsiodrine più totlae e voi ptoerte smerpe lggeree sneza porblmea.
Bart46
Apprendista Forumista
**
Offline Offline

Posts: 152



« Reply #1 on: 20-05-2009, 10:01:16 »

non vorrei sbagliare... ma credo che basti eliminare nell'insierimento la condizione
"if(val==p.visit())"

dove val è il valore che passiamo e che bisognerebbe inserire...


ripeto spero di non sbagliare  ciao
Logged
k1r4
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 375


Il mio nick si pronuncia cappaunoerrequattro!!


WWW
« Reply #2 on: 20-05-2009, 10:06:43 »

si dovrebbe modificare il metodo di inserimento:

Code:
    private BTNode insert(int val, BTNode p) {
        if (p == null) {
            p = new BTNode(val);
        } else {
            if (val < p.key) {
                p.left = insert(val, p.left);
            } else {
                if (val > p.key) {
                    p.right = insert(val, p.right);
                } else {
                    // E' un duplicato
                }
            }
        }
        return p;
    }

modificando queste condizioni:

if (val < p.key)                -->      if(val<=p.key)

if(val > p.key)                 -->      if(val>=p.key)

almeno credo
Logged

Pages: [1]   Go Up
Print
Jump to: