Ese 3 (del 31 Marzo 2004) - PowerPoint PPT Presentation

About This Presentation
Title:

Ese 3 (del 31 Marzo 2004)

Description:

Title: Presentazione di PowerPoint Author: troina Last modified by: Andrea Maggiolo Created Date: 3/15/2004 2:57:34 PM Document presentation format – PowerPoint PPT presentation

Number of Views:45
Avg rating:3.0/5.0
Slides: 13
Provided by: troi48
Category:
Tags: del | ese | marzo | priority

less

Transcript and Presenter's Notes

Title: Ese 3 (del 31 Marzo 2004)


1
Ese 3 (del 31 Marzo 2004)
2
Testo
  • Dare rappresentazione e realizzazione dei metodi
    della seguente classe QueueWithPriority. Nella
    risposta, non riportare i commenti della
    specifica.
  • Realizzare la procedura stand-alone che, data una
    QueueWithPriority, la modifica rimuovendo tutti
    gli elementi con priorità massima.

3
Specifica
4
Specifica
5
Implementazione
  • Rappresentazione usiamo un Vector per
    implementare la coda con priorita, ogni elemento
    e una coppia consistente di una stringa ed un
    intero (serve un tipo ausiliario record).
  • Il primo elemento della coda, quello con
    priorita massima ed inserito prima, e il primo
    elemento del vettore le coppie sono ordinate di
    conseguenza
  • Implementiamo i metodi di conseguenza
  • Omettiamo la definizione del tipo eccezione
    EmptyException, checked (estende Exception)

6
Record
class Pair // OVERVIEW un tipo record
String value int prior // costruttore Pair
(String s, int n) // EFFECTS inizializza il
record con i // valori di s ed n value
s prior n
7
Implementazione
public class QueuewithPriority // OVERVIEW una
QueueWithPriority è una coda con priorità, ossia
una // collezione di oggetti (di tipo String) a
cui è associata una priorità (un // numero). Gli
elementi sono ordinati in modo decrescente in
base alla // priorità e a parità di priorità in
base allordine di inserimento // (con una
politica first in first out). E modificabile.
private Vector els \\rappresentazione
privata
8
public QueuewithPriority () \\ EFFECTS
costruisce una QueuewithPriority vuota elsNew
vector() public String first() throws
EmptyException \\ EFFECTS se this e vuoto
solleva EmptyException, altrimenti \\ restituisce
il primo elemento di this if (els.size()0)
throw new EmptyException(vuota) Pair p
(Pair) els.get(0) return p.value
9
public int max() throws EmptyException \\
EFFECTS se this e vuoto solleva EmptyException,
altrimenti \\ restituisce la priorita massima
presente in this if (els.size()0) throw new
EmptyException(vuota) Pair p (Pair)
els.get(0) return p.prior public void
dequeue() throws EmptyException \\ MODIFIES
this \\ EFFECTS se this e vuoto solleva
EmptyException, altrimenti \\ rimuove il primo
elemento di this if (els.size()0) throw new
EmptyException(vuota) els.remove(0)
10
public void enqueue(String x, int p) ) throws
NullPointerException \\ MODIFIES this \\
EFFECTS se x e null solleva NullPointerExceptio
n, altrimenti \\ inserisce x in this con
priorita p if (xnull) throw new
NullPointerException(null) Pair znew Pair
(x,p) els.add(z) if (els.size() lt1)
return int iels.size()-2 while (i gt0)
Pair q(Pair) els.get(i) if (q.priorgtz.prior)
return els.set(i1,q) els.set(i,z) i--

11
Procedura stand-alone
  • Scritta vedendo solo la specifica di
    QueuewithPriority (non vediamo la
  • rappresentazione, ovvero la variabile distanza
    els di tipo Vector)
  • Gestiamo le eccezioni che possono essere
    sollevate dai metodi della classe
    (EmptyException) mediante try e catch
  • EmptyException e checked, potrebbe essere
    propagata solo se messa nellintestazione
  • Mascheriamo le eccezioni, se non ci sono elementi
    non modifica la coda

12
Procedura stand-alone
  • public static void removemax(QueuewithPriority p)
  • \\MODIFIESp
  • \\ EFFECTS rimuove tutti gli elementi di
    priorita pari alla massima da p
  • if (pnull) return
  • int i
  • tryip.max()
  • catch(EmptyException)
  • return
  • p.dequeue()
  • try
  • while (p.max() i) p.dequeue()
  • catch (EmptyException) return
Write a Comment
User Comments (0)
About PowerShow.com