Aiuto per conversione da Lista ad Albero binario in C

di il
3 risposte

Aiuto per conversione da Lista ad Albero binario in C

Salve a tutti devo consegnare un esercizio in pochi giorni e vorrei chiedervi una delucidazione. L'esercizio consiste nel "convertire" ad un caso di uso di alberi un esercizio, che io ho già fatto, sulla gestione delle liste. Il problema è che non riesco a capire concettualmente come si possa fare. Sicuramente è molto più semplice di quello che sembra.

Per farvi capire il mio dubbio, se questa è la struct della lista:

struct listaNodi {
	char nome[20];
	char cognome[20];
	char telefono[20];
	struct listaNodi *next;
};

typedef struct listaNodi ListaNodi;
typedef ListaNodi *ListaNodiPtr;
E le funzioni che sono implementate per la gestione sono: aggiunta di un nodo, cancellazione di un nodo e stampa della lista.
Con quale criterio bisogna collegare i vari nodi della lista in sottoalberi? Cioè perché un nodo dovrebbe essere un sottoalbero di un altro ecc.
Spero di essermi spiegato
La lista in questione rappresenta un rubrica telefonica ordinata alfabeticamente.

3 Risposte

  • Re: Aiuto per conversione da Lista ad Albero binario in C

    In base ad un confronto col nodo padre, decidi se il nodo figlio deve stare a destra o a sinistra. Ma queste sono le basi di un albero binario ordinato.
  • Re: Aiuto per conversione da Lista ad Albero binario in C

    Alexv ha scritto:


    In base ad un confronto col nodo padre, decidi se il nodo figlio deve stare a destra o a sinistra. Ma queste sono le basi di un albero binario ordinato.
    Si questo lo sapevo, la mia domanda era un'altra. I nodi devono essere posizionati nell'albero in base all'ordinamento che scelgo io giusto? In questo caso devono essere ordinati alfabeticamente in base al cognome giusto? Scusate l'ignoranza e le domande banali ma sono alle prime armi con il C
  • Re: Aiuto per conversione da Lista ad Albero binario in C

    gt3090 ha scritto:


    Si questo lo sapevo, la mia domanda era un'altra. I nodi devono essere posizionati nell'albero in base all'ordinamento che scelgo io giusto? In questo caso devono essere ordinati alfabeticamente in base al cognome giusto? Scusate l'ignoranza e le domande banali ma sono alle prime armi con il C
    Ma questo dipende dalla traccia. Se la versione con le liste lo chiedeva in base al cognome, non vedo perché cambiare. Anche perché non vedo altri modi sensati per ordinare una rubrica telefonica.
Devi accedere o registrarti per scrivere nel forum
3 risposte