Esercitazioni su alberi

Slides:



Advertisements
Presentazioni simili
Andrea Zandatutoraggio strutture dati STRUTTURE DATI e LABORATORIO II ESERCITAZIONE N°14 albero di ricerca binario.
Advertisements

INFORMATICA Altre Istruzioni di I/O
INFORMATICA Algoritmi fondamentali
Nel C non esiste un dato primario di tipo stringa; queste sono rappresentate con un array monodimensionale di caratteri (tipo char). Così per definire.
Informatica B Allievi Elettrici - AA Fondamenti della programmazione in linguaggio C (IV)
Tipi di dato astratti Lista, Pila, Coda, Albero.
Strutture dati In linguaggio C. Strutture Spesso gli algoritmi lavorano su insiemi di dati eterogenei Per esempio, per descrivere le caratteristiche di.
Informatica 2 Lezione 4 Corso di laurea in matematica Informatica 2 Dott. Ing. Leonardo Vito Corso di laurea matematica indirizzo matematica per le applicazioni.
Introduzione al linguaggio C
Introduzione al linguaggio C Dr. Francesco Fabozzi Corso di Informatica.
Algoritmi Avanzati Grafi e Alberi
Alberi binari di ricerca
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
STRUTTURE DATI e LABORATORIO II ESERCITAZIONE N°13 Heap massimo.
Esercizi su alberi binari
Alberi binari Definizione della struttura dati: struct tree { };
Esercizi su alberi binari di ricerca
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tipi di dati strutturati Marco D. Santambrogio – Ver. aggiornata al 4 Marzo 2013.
Il problema del dizionario
Laboratorio di Linguaggi lezione IX: Dentro le Librerie Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese.
Laboratorio di Linguaggi lezione IX: tipi ricorsivi Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso.
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Array Anno Accademico 2009/2010.
Corso di Informatica (Programmazione)
Corso di Laurea in Biotecnologie Informatica (Programmazione)
CORSO DI PROGRAMMAZIONE II Operazioni su alberi ordinati e non
1. 2 ALCUNE INFORMAZIONI PRELIMINARI Docente: E. Burattini Libri di testo: Deitel H.M., Deitel P.J. – C++ Fondamenti di programmazione,
Albero: insieme di punti chiamati NODI e linee chiamate EDGES
Fondamenti di Informatica I a.a Il linguaggio C Il controllo di flusso La selezione condizionale Listruzione switch I cicli Le istruzioni break,
Modello dati ALBERO Albero: Albero: insieme di punti chiamati NODI e linee chiamate EDGES EDGE: linea che unisce due nodi distinti Radice (root): in una.
Modello dati ALBERO Albero: Albero: insieme di punti chiamati NODI e linee chiamate EDGES EDGE: linea che unisce due nodi distinti Radice (root): in una.
Esercizi su alberi binari
Struct, enum, Puntatori e Array dinamici
Esercizi C sui tipi definiti dall’utente
Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio.
Fondamenti di Informatica A - Massimo Bertozzi TIPI DI DATO IN C++ What's in a name? That which we call a rose By any other name would smell as sweet.
Alberi di ricerca binari
Lezione 17 maggio 2007 Parametri da linea di comando FILE Strutture (introduzione)
15 maggio 2002 Avvisi: Ultima lezione: mercoledì 29 maggio II Esonero: mercoledì 5 giugno, ora da stabilire.
1. 2 Struct Al fine di illustrare luso del tipo struct, utilizzando le struct descritte nella lezione precedente, mostriamo come si scrive un programma.
Università degli Studi di BresciaA.A. 2012/2013 Fondamenti di Programmazione Docente: Alessandro SaettiA.A. 2012/2013 Università degli Studi di Brescia.
void binario(int n); …………………
Sistemi e Tecnologie Informatiche
Esercizi Liste.
Esercizi su alberi binari di ricerca
Alberi binari Definizione della struttura dati: struct tree { };
Corso di Informatica 2 a.a. 2003/04 Lezione 6
Corso di Programmazione Grafica e Laboratorio Daniele Marini
Esercitazioni su liste
Esercizio Si legga una sequenza di numeri interi da tastiera (terminatore: 0), quindi: Creare lista L1 con inserimento in testa; cons Creare lista L2 con.
Dato un vettore di reali di dimensione DIM, si inseriscano N elementi presi da tastiera, si utilizzi 0 per terminare l’inserimento. Ordinare gli elementi.
Alberi Alberi radicati : alberi liberi in cui un vertice è stato scelto come radice. Alberi liberi : grafi non orientati connessi e senza cicli. Alberi.
Informatica 4 Funzioni. FUNZIONE: definizione MATEMATICA Relazione (o applicazione) binaria tra due insiemi A e B che associa a ogni elemento di A un.
Ugo de'Liguoro - Informatica 2 a.a. 03/04 Lez. 7 Tipi di dato e strutture dati Specifica e realizzazione di strutture informative come classi.
CORSO DI PROGRAMMAZIONE II
MODULO STRUTTURE DATI FONDAMENTALI: Strutture dinamiche
Programmazione in Java
Prog2 a.a. 2001/ Albero binario di ricerca Un albero binario di ricerca é un albero binario in cui ogni nodo ha un’etichetta.
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Ripasso su Java. Introduzione Per risolvere problemi complessi, i linguaggi di programmazione forniscono costrutti per realizzare nuove funzioni che trasformino.
Il linguaggio C Notate che ....
Compitino del 2004 Alberi Generici. Idea Si vuole un tipo di dato astratto che definisca una struttura ad albero in cui nodi e foglie hanno associato.
Il linguaggio C Un primo programma C : un primo programma (2) /* Programma che calcola il massimo fra tre numeri inseriti da tastiera */ #include #define.
Fondamenti di Informatica
Corso di Algoritmi e Strutture Dati APPUNTI SUL LINGUAGGIO C Esercizi su Alberi.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Esercitazione pre 1ma prova in itinere Marco D. Santambrogio – Ver. aggiornata.
Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Docente: A.A Salvatore Cuomo Esercizi sui dati strutturati 13 Tipi di dati strutturati.
1 MODULO STRUTTURE DATI FONDAMENTALI: Strutture dinamiche classe 4° INDUSTRIALE INFORMATICA Focus on.
Prog21 Alberi binari (radicati e ordinati) Il figlio destro della radice La radice Il figlio sinistro della radice Il padre del nodo 5.
Esercitazioni di Prog. II (esercizi su alberi ennari)
Alberi n-ary Lezioni di C.
Transcript della presentazione:

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. *

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); *

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 *

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. *

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); *

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); *