Strumenti Utente

Strumenti Sito


informatica:sol:laboratorio18:esercitazionib:esercitazione1

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Prossima revisione
Revisione precedente
informatica:sol:laboratorio18:esercitazionib:esercitazione1 [20/02/2018 alle 07:44 (7 anni fa)] – creata Massimo Torquatiinformatica:sol:laboratorio18:esercitazionib:esercitazione1 [20/02/2018 alle 08:33 (7 anni fa)] (versione attuale) Massimo Torquati
Linea 9: Linea 9:
  
 ===== Esercizio 2 ===== ===== Esercizio 2 =====
 +
 +Scrivere un programma che, dato un array di N elementi interi, costruisca un albero binario di ricerca (cioè per ogni nodo dell'albero, l'elemento del nodo è maggiore di tutti gli elementi del sottoalbero di sinistra e minore o uguale di tutti gli elementi del sottoalbero di destra). 
 +Implementare le seguenti funzioni:
 +<code c>
 +struct node_t *buildTree(long elem, struct node_t *t); // costruisce l'albero e restituisce il nodo radice
 +long getMin(struct node_t *root);       // restituisce il valore minimo
 +long getMax(struct node_t *root);       // restituisce il valore massimo
 +void printInOrder(struct node_t *root); // stampa gli elementi in modo ordinato
 +void deleteTree(struct node_t *root);   // cancella tutti i nodi dell'albero
 +</code>
 +
 +Definire il tipo 'struct node_t' opportunamente. Implementare tutte le funzioni usando la ricorsione.
 +Il main e' il seguente:
 +<code c>
 +int main(int argc, char *argv[]) {
 +    struct node_t *root = NULL;
 +    const long array_size = 10;
 +    long array[] = { 12, 32, 18, -1, 0, 18, -5, 54, 28, 15};
 +    
 +    for(long i=0; i<array_size; ++i)
 + root = buildTree(array[i], root);
 +
 +    printf("Min: %ld\n", getMin(root));
 +    printf("Max: %ld\n", getMax(root));
 +
 +    printInOrder(root);
 +    printf("\n");
 +
 +    deleteTree(root);
 +    return 0;
 +}
 +</code>
 +
 +===== Esercizio 3 =====
  
 Scrivere una funzione 'mystrcat' con la seguente segnatura: Scrivere una funzione 'mystrcat' con la seguente segnatura:
Linea 50: Linea 84:
 </code> </code>
  
-===== Esercizio 3 ===== 
- 
-Scrivere un programma che, dato un array di N elementi interi, costruisca un albero binario di ricerca (cioè per ogni nodo dell'albero, l'elemento del nodo è maggiore di tutti gli elementi del sottoalbero di sinistra e minore o uguale di tutti gli elementi del sottoalbero di destra).  
-Implementare le seguenti funzioni: 
-<code c> 
-struct node_t *buildTree(long elem, struct node_t *t); // costruisce l'albero e restituisce il nodo radice 
-long getMin(struct node_t *root);       // restituisce il valore minimo 
-long getMax(struct node_t *root);       // restituisce il valore massimo 
-void printInOrder(struct node_t *root); // stampa gli elementi in modo ordinato 
-void deleteTree(struct node_t *root);   // cancella tutti i nodi dell'albero 
-</code> 
- 
-Definire il tipo 'struct node_t' opportunamente. Implementare tutte le funzioni usando la ricorsione. 
  
 ===== Esercizio 4 ===== ===== Esercizio 4 =====
informatica/sol/laboratorio18/esercitazionib/esercitazione1.1519112686.txt.gz · Ultima modifica: 20/02/2018 alle 07:44 (7 anni fa) da Massimo Torquati

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki