ma non è che dovevi farlo con gli array l'esercizio?
ma non è che dovevi farlo con gli array l'esercizio?
IP-PBX management: http://www.easypbx.it
Old account: 2126 messages
Oldest account: 3559 messages
Esercizio 7 (impegnativo)
Argomento: algoritmi su tipi di dati astratti, pile
Realizzare un algoritmo che ordina gli elementi di una pila: dopo l'applicazione dell'algoritmo gli oggetti contenuti nella pila devono essere ordinati, con l'elemento minore in cima alla pila (si supponga, ovviamente, che tutti gli oggetti siano esemplari di una stessa classe che realizza l'interfaccia Comparable).
- l'algoritmo non deve usare array o altre strutture dati, ma soltanto pile
- l'algoritmo non deve restituire una nuova pila, ma deve modificare il contenuto della pila ricevuta come parametro esplicito
- la realizzazione più semplice prevede l'utilizzo di DUE pile come spazio di memorizzazione temporaneo
- è possibile individuare una soluzione migliore (dal punto di vista dello spazio di memoria richiesto), che usi UNA sola pila come spazio di memorizzazione temporaneo
- si suggerisce di prendere spunto dall'algoritmo di ordinamento per selezione
- se non si riesce ad individuare un algoritmo per la soluzione del problema, si realizzi questo.
Dopo avere scritto un metodo statico sortStack che realizza l'algoritmo sopra descritto, inserirlo in una classe eseguibile che:
- legge dallo standard input un insieme (di dimensione non predeterminata) di numeri in virgola mobile, in formato libero (ossia anche più numeri su una stessa riga, separati da spazi), e li inserisce in una pila
- invoca il metodo sortStack sulla pila appena riempita
- visualizza sullo standard output i numeri dell'insieme in ordine crescente, uno per riga, estraendoli dalla pila