Anteprima
Vedrai una selezione di 3 pagine su 6
Programmazione I - lista a puntatore Pag. 1 Programmazione I - lista a puntatore Pag. 2
Anteprima di 3 pagg. su 6.
Scarica il documento per vederlo tutto.
Programmazione I - lista a puntatore Pag. 6
1 su 6
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

// LISTADI1.H : Implementazione dinamica della struttura astratta lista

// realizzata con libreria di funzioni. File di SPECIFICA

#ifndef _LISTA_H_ // Compilazione condizionale

#define _LISTA_H_

typedef int E; // Def. del tipo di el. della lista

struct Record; // Predichiarazione

typedef Record* L; // Def. del tipo puntatore a Record

struct Record { // Tipo record costituito da

E elem; // campo informazione

L punt; // campo puntatore al prossimo

nodo della lista

};

void start(L& l); // Inizializza la lista

bool empty(const L& l); // Test di lista vuota

bool full(const L& l); // Test di lista piena

void inserisce(L& l, const E e); // Inserimento di un elemento (mantiene la lista

ordinata)

bool elimina(L& l, const E e); // Cancellazione di un elemento

void stampa(const L l); // Stampa la lista

#endif

#include <iostream.h>

#include "lista.h"

//Prototipi di funzioni definite in questo modulo

void presenta_menu(int& scelta);

void inserimento(L& l);

void estrazione(L& l);

void print(const L& l);

void main(void) {

L l; //definisce variabile di tipo lista

int scelta, esci=0;

start(l); // inizializza la lista

do {

presenta_menu(scelta);

switch (scelta) {

case 1: inserimento(l);break;

case 2: estrazione(l);break;

case 3: print(l);break;

case 4: esci=1;break;

default: cout << "\n opzione errata!";

}

} while (!esci);

}

void presenta_menu(int& scelta) {

do {

// stampa il menu' delle operazioni previste

cout<<"\n Gestione di una lista dinamica ORDINATA";

cout<<"\n1) Inserimento di un elemento\n ";

cout<<"\n2) Cancellazione di un elemento\n ";

cout<<"\n3) Visualizza la lista\n ";

cout<<"\n4) Fine\n ";

cout<<"\n Inserisci una opzione: ";

cin>>scelta;

cout << "\n";

} while ((scelta<1)||(scelta>4));

}

void inserimento(L& l) {

E e ; cout<<"Opzione 1 - inserimento di un elemento\n ";

cout<<"elemento= "; cin>>e;

if (!full(l)) inserisce(l,e);

else cout<<"\n Lista piena\n ";

}

void estrazione(L& l) {

E e; cout<<"Opzione 2 - cancella un elemento\n ";

if (!empty(l)) {

cout<<"elemento da eliminare= "; cin>>e;

if (elimina(l,e))

cout<<"\nelemento = "<<e << "cancellato!";

else cout<<"Elemento non presente nella lista.\n ";

}

else cout<<"Lista vuota cancellazione impossibile\n ";

}

void print(const L& l) {

cout<<"Opzione 3 - stampa della lista\n ";

if (!empty(l))

stampa(l);

Dettagli
Publisher
A.A. 2012-2013
6 pagine
SSD Ingegneria industriale e dell'informazione ING-INF/05 Sistemi di elaborazione delle informazioni

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher Menzo di informazioni apprese con la frequenza delle lezioni di Programmazione 1 e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli studi di Napoli Federico II o del prof Maresca Paolo.