View Full Version : Alberi in C costruiti tramite Matrice
devilchan
29-01-2005, 23:29
Ragazzi HELP ME HELP ME!!!!
Devo scrivere questo programma assolutamente.
Non devo usare la libreria iostrem.h
il testo dell'esercizio è allegato qui sotto.
Praticamente ho gia letto dale file e l'ho inserito nella Matrice e identificato la root secondo la matrice sotto indicata
n des pun pun
-----------------------
0 | 6 | B | * | * |
1 | 5 | A | -6 | 8 |
0 | 8 | C | -2 | 3 |
0 | 3 | E | * | * |
0 | 2 | D | * | * |
-----------------------
ORA IL MIO PROBLEMA STA NEL COSTRUIRE L'ALBERO SECONDO I PARAMETRI OVVIAMENTE n e un numero identificativo di nodo des è e la descrizione pun sono i figli destri e sinistri, il figlio sinistro e riconoschibbile dal segno -
Quindi , partendo dalla root vado al pun (-6) che ci dice ke è il figlio sinistro,vado al num identificativo "n"(6) e prendo la descrizione e vedo ke non ha ne figlio destro ne sinistro, ritorno in dietro e vedo che il numero idendificativo 8 è il figlio destro e quindi prendo la sua descrizione (C) e vedo che ha i figlio in posizione 3 e in posizione 2 dove due è il figlio destro.
Ora da questa tabella io devo potermi creare un albero con qull'ordine, vi prego aiutatemi voi gurru del c.Per farvi capire meglio vi lascio in allegato l'esercizio in formato zip.
GRAZIE mille a tutti
E URGENTISSIMO Vi prego
devilchan
30-01-2005, 23:14
per chi volesse farlo i maniera completa può farlo, il termine di scadenza era oggi ma spero che lo accetti anke nei prossimi giorni.
beppegrillo
31-01-2005, 06:38
unina lab. di algoritmi mod a? :D
devilchan
31-01-2005, 16:21
Si bravo.
Non mi puoi aiutare?
Mi dispiacerebbe perdere il Lab per un solo Esercizio non fatto o meglio fatto a metà.
Fammi sapere
devilchan
31-01-2005, 16:49
Se non puoi mandarmelo, almeno potresti dire qiali e come si fanno le assegnazioni per l'albero e come si fa a creare un nuovo nodo e metterci dentro la stringa di descrizione?
beppegrillo
31-01-2005, 18:32
Originariamente inviato da devilchan
Se non puoi mandarmelo, almeno potresti dire qiali e come si fanno le assegnazioni per l'albero e come si fa a creare un nuovo nodo e metterci dentro la stringa di descrizione?
Eccomi quà, l'esercizio purtroppo non credo il caso di inviartelo visto che stò seguendo anche io il corso ;)
In che gruppo sei? Io per l'albero binario ho deciso di utilizzare una struttura dati del tipo lista doppiamente lincata, il mio nodo è una cosa del tipo
struct nodo {
int key;
struct nodo *sx, *dx;
}
Per le assegnazioni devi leggerti il file di testo riga per riga e fare il parsing delle righe alla ricerca dei tag ricercati, ti salvi i valori che hai letto, io li ho messi in un array, ma puoi fare diversamente, ed infine li inserisci nodo per nodo.
Spero si sia capito un pò, se vuoi chiedermi altro, io son quà :)
devilchan
31-01-2005, 23:17
l'allocazione dei nodi dell'albero come l'hai fatta?Cosa hai scritto?
devilchan
01-02-2005, 10:57
la procedura che hai utilizzato per stamapra di 90 gradi me la puoi mostrare?
io ho finito , ma ho un problema sempre sull'allocazione dei nodi della albero.
Praticamente e come se sfondassi il numero massimo di nodi da inserire o cose simili.
Sono rovinato :):D
beppegrillo
01-02-2005, 16:32
Originariamente inviato da devilchan
l'allocazione dei nodi dell'albero come l'hai fatta?Cosa hai scritto?
Devi utilizzare la funzione malloc, che ti istanzia dello spazio allocandolo dinamicamente.
P.s In che gruppo sei?
devilchan
01-02-2005, 16:33
sono da solo. Mi sembra gruppo 9
beppegrillo
01-02-2005, 16:37
Originariamente inviato da devilchan
la procedura che hai utilizzato per stamapra di 90 gradi me la puoi mostrare?
io ho finito , ma ho un problema sempre sull'allocazione dei nodi della albero.
Praticamente e come se sfondassi il numero massimo di nodi da inserire o cose simili.
Sono rovinato :):D
Che struttura dati hai utilizzato? Comunque esistono algoritmi di visita dell'albero, li vedi o sul cormen o sulle slides delle lezioni.
devilchan
01-02-2005, 16:39
ho utilizzato una ***mat e poi da li mi sono costruito l'albero
vieni su questa chat
http://acwc.altervista.org/chat.htm
devilchan
01-02-2005, 16:41
l'labero è binario o no?
devilchan
01-02-2005, 16:50
Mi puoi dare una procedura di ricerca nell'albero che non sia binario e restituisce un puntatore alla radice dell'elemento trovato?
esempio
tipoAlbero s;
s= ricerca(radice, elemanto_da_ricercare);
Non puoi scrivermi anke la procedura per stampare a 90 gradi?
questa e quella che ho fatto io
void print(TipoAlbero albero,int cont)
{
if (albero == NULL) return;
printf("\n");
print(albero->destro,cont++);
for (int i=0; i<cont*3; i++) printf(" ");
printf("%c",albero->info);
print(albero->sinistro,cont++);
return;
}
beppegrillo
01-02-2005, 18:14
Originariamente inviato da devilchan
Mi puoi dare una procedura di ricerca nell'albero che non sia binario e restituisce un puntatore alla radice dell'elemento trovato?
esempio
tipoAlbero s;
s= ricerca(radice, elemanto_da_ricercare);
Ed a cosa ti serve questa funzione ai fini del progetto? Comunque puoi utilizzare la funzione print che hai scritto, e fai un
if (albero.key=='quellochevuoi') {
return albero;
}
Non puoi scrivermi anke la procedura per stampare a 90 gradi?
questa e quella che ho fatto io
void print(TipoAlbero albero,int cont)
{
if (albero == NULL) return;
printf("\n");
print(albero->destro,cont++);
for (int i=0; i<cont*3; i++) printf(" ");
printf("%c",albero->info);
print(albero->sinistro,cont++);
return;
}
Ho utilizzato anche io questo algoritmo, non ti funziona? A me si, evidenemente sbagli qualcosa nell'inserimento dei dati nell'albero binario.
X la chat scusami ma ora non ho molto tempo.
devilchan
01-02-2005, 20:57
come hai fatto ad inserire LE STRINGHE nella key del nodo?
Io riesco amettere solo caratteri Se ora puoi vai alla chat:
http://acwc.altervista.org/chat.htm
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.