Laboratorio di Informatica 1 (Programmazione)

ESERCIZI

 


Esercizio 1
Simulazione di una coda con due pile. (Inizialmente ho pila1 e pila2 vuote. L’operazione Enqueue corrisponde ad un operazione push su pila1. Per l’operazione dequeue si presentano 2 casi: se pila2 e non vuota, allora corrisponde a pop sulla pila2 ; se pila2 e’ vuota “la riempo” con tutti gli elementi di pila1 (pop su pila1 e push su pila2, finche’ pila1 e’ vuota ) e poi applico pop su pila2
Soluzione a cura di F.Doddi. (usa doddi_pila.c)
Soluzione a cura di S.Ruffini

 

Esercizio 2
Integrare il programma tree.c con le seguenti funzioni:
  • Funzione count che conta il numero di nodi in un albero binario.
  • Funzione depth che determina il numero di livelli di un albero binario.
  • Funzione search che ricerca un dato valore all’interno di un albero binario di ricerca. La funzione dovra’ restituire il puntatore a quel valore o null nel caso che tale valore non sia presente nella lista.
  • Funzione BF_visit che visita l’albero in ampiezza (per livelli). La funzione fa uso di una coda. Cosa succede se sostituisco la coda con una pila? (
  • DIFFICILE)Funzione delete che cancella un dato valore dall’albero. (vedi esercizio 12.22 sul libro di testo)
  • Funzione delete_max che cancella il massimo valore dall’albero. Funzione delete_min che cancella il minimo valore dall’albero.
Soluzione a cura di F.Doddi. (usa doddi_coda.c)