La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Esercitazioni su alberi

Presentazioni simili


Presentazione sul tema: "Esercitazioni su alberi"— Transcript della presentazione:

1 Esercitazioni su alberi
Si vuole creare un albero binario di ricerca (BST) contenente studenti del corso di Fondamenti di Informatica in modo da poter eseguire funzioni su esso. Si astragga il concetto di albero in modo da rendere l’implementazione il più strutturata possibile. *

2 Esercitazioni su alberi
Per fare ciò si cominci a implementare: Una libreria (element.h, element.c) contenente la definizione dei tipi di dato e delle funzioni primitive //DEFINIZIONI #define DIM_STR 20 typedef struct { char nome[DIM_STR]; char cognome[DIM_STR]; float media; } element; typedef enum { false, true } boolean; //DICHIARAZIONI boolean isLess(element, element); boolean isEqual(element, element); element getElement(void); void printElement(element); boolean isNull(element); *

3 Esercitazioni sulle alberi
Dove boolean isLess(element, element); Controlla se un elemento è minore dell’altro (ordine alfabetico su cognome e in caso di cgnomi uguali sul nome) boolean isEqual(element, element); Uguaglianza fra elementi element getElement(void); Input da tastiera di un elemento void printElement(element); Stampa a video di un elemento *

4 Esercitazioni su alberi
Il programma deve prendere in input i numeri da inserire all'interno dell'albero. Visualizzare un menu nel quale è possibile: 'r' → Generare un nuovo albero, '<' → Eseguire stampa preorder, '>' → Eseguire stampa postorder, 'i' → Eseguire stampa inorder, '/' → Ricerca di un elemento, 'h' → Calcolare l'altezza dell'albero, 's' → Calcolare la media delle medie degli elementi dell'albero, 'n' → Calcolare il numero di nodi, 'b' → Calcolare il bilanciamento dell'albero, 'p' → Stampa su file binario il contenuto (in ordine) dell’albero 'l' → Caricare da file il contenuto dell’albero 'e' → Uscire dal programma. *

5 Esercitazioni su alberi
Le funzioni di manipolazione delle liste, da inserire nel file tree.c, tree.h secondo le modalità solite, richieste sono state già introdotte a lezione, di seguito un rapido ripasso: typedef struct nodo { element value; struct nodo *left, *right; } NODO; typedef NODO *tree; /*PRIMITIVE*/ boolean empty(tree); tree emptytree(void); element root(tree); tree left(tree); tree right(tree); tree cons_tree(element,tree ,tree); *

6 Esercitazioni su alberi
Utilizzando questa base andiamo a implementare le seguenti funzioni. tree ord_ins(element, tree) void preorder(tree); void inorder(tree); void inorderFile(tree, FILE*); void postorder(tree); boolean member(element, tree); int nnodes(tree); float sum(tree); float avg(tree); int height(tree t); int height_aux(tree t); int balance (tree t); *


Scaricare ppt "Esercitazioni su alberi"

Presentazioni simili


Annunci Google