Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema
Insta360 Luna Ultra integra un sensore da 1 pollice 8K, ottiche Leica e triplo chip IA. Tra schermo OLED rimovibile, workflow I-Log a 10 bit e stabilizzazione a tre assi, analizziamo le doti tecniche di una gimbal camera pensata per i professionisti
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 10-01-2011, 17:26   #1
mame83
Member
 
Iscritto dal: Nov 2010
Messaggi: 71
[C] funzione ricorsiva che copia gli elementi di un albero binario in un vettore

Salve a tutti. Ho il seguente problema: devo copiare gli elementi di un albero binario di ricerca in un vettore ordinato in maniera crescente ricorsivamente.

Codice:
void copia(int vet[max],nod *rad, int i)
{
  if (rad!=NULL) 
    {
     copia(vet,rad->sinistro,i);
     vet[i]=rad->info;   
     i=i+1;
     copia(vet,rad->destro,i);
    } 
}
dove max e una costante rad il puntatore dell albero e i l indice del vettore.
L OUTPUT mi copia solo i figli di destra.
Spero qualcuno mi aiuti!!!!!
mame83 è offline   Rispondi citando il messaggio o parte di esso
Old 10-01-2011, 17:57   #2
tuccio`
Senior Member
 
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
immagino che tu chiami con i = 0, no?

ora, quando arrivi la prima volta alla linea

Codice:
copia(vet,rad->sinistro,i);
ora, metti che abbia fatto tutte le chiamate ricorsive del sottoalbero sinistro, non sai quanti elementi ha scritto nel vettore, però tu scrivi, nella riga successiva, nella posizione 0 il valore dell'elemento corrente, probabilmente già hai sovrascritto qualcosa, e continua così..

visto che la chiamata non ritorna nulla, potresti ritornare il numero di elementi già inseriti nell'array, così da poter capire dove devi scrivere il prossimo numero
tuccio` è offline   Rispondi citando il messaggio o parte di esso
Old 11-01-2011, 15:52   #3
mame83
Member
 
Iscritto dal: Nov 2010
Messaggi: 71
si lo chiamo con i=0.
Se ho ad esempio l albero semplice
4
2 6
cioe con 4 nodo radice , 2 figlio sinistro di 4 e 6 figlio destro di 4.
nel vettore metterà solo 4 e 6.
mame83 è offline   Rispondi citando il messaggio o parte di esso
Old 11-01-2011, 18:45   #4
tuccio`
Senior Member
 
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
forse non hai notato, ma ti ho detto sia il perché sia una possibile soluzione :X
tuccio` è offline   Rispondi citando il messaggio o parte di esso
Old 11-01-2011, 19:03   #5
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
Stai sovrascrivendo tutti i valori, se passi lo stesso puntatore "vet" alle due funzioni (prima sx e poi dx) seconda sovrascrivera` quello scritto dalla prima...

Ultima modifica di Ufo13 : 11-01-2011 alle 19:06.
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2011, 16:37   #6
mame83
Member
 
Iscritto dal: Nov 2010
Messaggi: 71
non so come altro fare. mi aiutate???
mame83 è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2011, 20:31   #7
qwerty86
Senior Member
 
L'Avatar di qwerty86
 
Iscritto dal: Jun 2007
Messaggi: 1232
Codice:
void copia(int vet[max],nod *rad, int i)
{
  if (rad!=NULL) 
    {
        
        copia(vet,rad->sinistro,i);
        vet[i]=rad->info;
        copia(vet,rad->destro,i+1);
    } 
}
prova così....
__________________
Cpu: Amd 64 X2 5200+ - Mobo:M2N32SLI DELUXE - Ram: Corsair xms2 800 mhz kit 4gb - SK Video: Gaiward GTS250 - Ali : Enermax Liberty 500 Wat - Mast DVD: 2 Nec AD-5170A - Case : Thermaltake Armor+ - Dissipatore: Thermaltake V1 Notebook: Sony Vaio VGN-Fe21M-Pda: Htc Diamond |Il mio sito|Flickr| Stanco del solito forum? Vieni a parlare di fotografia su Fotoni

Ultima modifica di qwerty86 : 13-01-2011 alle 20:38.
qwerty86 è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2011, 20:52   #8
tuccio`
Senior Member
 
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
e che cambia?


ps: ripeto, te l'ho detto come puoi fare
tuccio` è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2011, 21:00   #9
qwerty86
Senior Member
 
L'Avatar di qwerty86
 
Iscritto dal: Jun 2007
Messaggi: 1232
Quote:
Originariamente inviato da tuccio` Guarda i messaggi
e che cambia?


ps: ripeto, te l'ho detto come puoi fare
cambia che nella seconda chiamata incrementa i
__________________
Cpu: Amd 64 X2 5200+ - Mobo:M2N32SLI DELUXE - Ram: Corsair xms2 800 mhz kit 4gb - SK Video: Gaiward GTS250 - Ali : Enermax Liberty 500 Wat - Mast DVD: 2 Nec AD-5170A - Case : Thermaltake Armor+ - Dissipatore: Thermaltake V1 Notebook: Sony Vaio VGN-Fe21M-Pda: Htc Diamond |Il mio sito|Flickr| Stanco del solito forum? Vieni a parlare di fotografia su Fotoni
qwerty86 è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2011, 21:06   #10
tuccio`
Senior Member
 
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
Quote:
Originariamente inviato da qwerty86 Guarda i messaggi
cambia che nella seconda chiamata incrementa i
e quello che aveva scritto lui no?

il punto è che non risolve il problema
tuccio` è offline   Rispondi citando il messaggio o parte di esso
Old 13-01-2011, 21:10   #11
qwerty86
Senior Member
 
L'Avatar di qwerty86
 
Iscritto dal: Jun 2007
Messaggi: 1232
Quote:
Originariamente inviato da tuccio` Guarda i messaggi
e quello che aveva scritto lui no?

il punto è che non risolve il problema
Ops...sono fuso! Hai ragione..si mi sa che la tua è una buona soluzione..
__________________
Cpu: Amd 64 X2 5200+ - Mobo:M2N32SLI DELUXE - Ram: Corsair xms2 800 mhz kit 4gb - SK Video: Gaiward GTS250 - Ali : Enermax Liberty 500 Wat - Mast DVD: 2 Nec AD-5170A - Case : Thermaltake Armor+ - Dissipatore: Thermaltake V1 Notebook: Sony Vaio VGN-Fe21M-Pda: Htc Diamond |Il mio sito|Flickr| Stanco del solito forum? Vieni a parlare di fotografia su Fotoni
qwerty86 è offline   Rispondi citando il messaggio o parte di esso
Old 14-01-2011, 17:24   #12
Ufo13
Senior Member
 
L'Avatar di Ufo13
 
Iscritto dal: Nov 2005
Messaggi: 1545
Quote:
Originariamente inviato da qwerty86 Guarda i messaggi
Codice:
void copia(int vet[max],nod *rad, int i)
{
  if (rad!=NULL) 
    {
        
        copia(vet,rad->sinistro,i);
        vet[i]=rad->info;
        copia(vet,rad->destro,i+1);
    } 
}
prova così....
A me risulta sbagliato pure questo... I figli a sinistra sovrascrivono comunque la entry del padre no?
Ufo13 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Insta360 Luna Ultra: la potenza del sensore da 1 pollice incontra la portabilità estrema Insta360 Luna Ultra: la potenza del sensore da 1...
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Google potrebbe rilasciare un'app uffici...
Lies of P, il sequel potrebbe chiamarsi ...
Dreamforce 2026: Salesforce punta sulla ...
SpaceX ha confermato che Flight 14 sar&a...
Googlebook pronto al debutto: Google apr...
Guida all'acquisto: quale lavapavimenti ...
Google Maps su Android Auto introduce fi...
AMD Ryzen 5 5500F: fino al 16% di presta...
L'ecosistema partner di Microsoft cresce...
Oracle registra un boom nella divisione ...
Amazon Prime Video sfida TikTok con le n...
L'uscita di Rayman Legends Retold &egrav...
Dazio UE sui pacchi extra UE, in Italia ...
La nuova lavatrice smart di Xiaomi ha tr...
Hai una PSP nel cassetto? Questo nuovo p...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 07:21.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v