Fondamenti di Informatica - Ingegneria per l'Ambiente e il Territorio - A.A. 97/98

- Ottava esercitazione in laboratorio -

 

 

  1. Si scriva un programma in C che costruisca dapprima una lista collegata vuota e che legga poi da tastiera una sequenza di interi, terminata da 0. Il programma, per ogni intero letto, controlla se esso è già presente nella lista e in caso negativo crea un elemento corrispondente all’intero e lo collega in testa alla lista; in caso positivo stampa un messaggio diagnostico e prosegue regolarmente. Dopo la creazione della lista il programma effettua le seguenti operazioni:
    1. Stampa ordinatamente i campi info della lista.
    2. Inverte la lista (ad es., se la lista contiene i valori 1, 5, 3, 7, 6 e 10, la lista invertita conterrà i valori 10, 6, 7, 3, 5 e 1).
    3. Stampa ordinatamente i campi info della lista invertita.
    4. Distrugge la lista.
    5. Termina.

    Si suggerisce di utilizzare le seguenti dichiarazioni globali:

    typedef int tipoinfo;

    typedef struct structelem {

    tipoinfo info;

    struct structelem *next;

    } elem;

    typedef elem *pelem;

    pelem Lista;

  2. Con riferimento a quanto richiesto nell’esercizio 8.1, scrivere in programma in C che realizzi la variante in cui tutti gli inserimenti vengono fatti in coda alla lista.
  3. Con riferimento a quanto richiesto nell’esercizio 8.1, scrivere in programma in C che realizzi la variante in cui tutti gli inserimenti vengono fatti in maniera che la lista contenga i valori nei campi info ordinati in senso crescente.