• Non ci sono risultati.

UnUn’’applicazione degli applicazione degli HeapHeap: : Code di PrioritCode di Prioritàà

N/A
N/A
Protected

Academic year: 2021

Condividi "UnUn’’applicazione degli applicazione degli HeapHeap: : Code di PrioritCode di Prioritàà"

Copied!
3
0
0

Testo completo

(1)

1

Murano Aniello - Lab. di ASD

Quarta Lezione 1

Laboratorio di Algoritmi e Strutture Dati

Laboratorio di Algoritmi e Laboratorio di Algoritmi e

Strutture Dati Strutture Dati

Aniello Murano Aniello Murano http://

http://people.na.infn.itpeople.na.infn.it//~murano~murano//

Murano Aniello - Lab. di ASD

Quarta Lezione 2

Un’ Un ’applicazione degli applicazione degli Heap Heap: : Code di Priorit

Code di Priorità à

(2)

2

Murano Aniello - Lab. di ASD

Quarta Lezione 3

Code di Priorità

Le code di priorità rappresentano una delle applicazioni più efficienti della struttura dati Heap.

Una coda di priorità è una struttura dati utilizzata per mantenere un insieme S di elementi, a ciascuno associato un valore chiamato “chiave”.

Una coda di priorità supporta le seguenti operazioni Insert(S,x): Inserisce l’elemento x nell’insieme S.

Maximum(S): Restituisce l’elemento di S con la chiave più grande.

Extract-Max(S): Rimuove e ritorna l’elemento di S con la chiave più grande.

Murano Aniello - Lab. di ASD

Quarta Lezione 4

Una possibile applicazioni

Una delle applicazioni più comuni delle code di priorità è quella della schedulazione dei lavori su computer condivisi (per esempio per gestire le code di stampa)

La coda di priorità tiene traccia del lavoro da realizzare e la relativa priorità.

Quando un lavoro viene eseguito o interrotto, il lavoro con più alta priorità è selezionato da quelli in attesa utilizzando la procedura Extract-Max.

Ad ogni istante un nuovo lavoro può essere aggiunto alla coda.

(3)

3

Murano Aniello - Lab. di ASD

Quarta Lezione 5

Esercizio

Scriver in C la funzione Extract-Max, che estrae il massimo da un heap.

Scriver in C la funzione Insert, che permette di inserire un valore in un heap.

Scrivere un programma che, dopo aver preso in input la grandezza di un heap e i valori contenuti nell’heap, dapprima costruisca l’heap, poi a scelta chiami una delle due funzioni precedenti e infine stampi l’heap risultante.

N.B. La funzione Extract-Max deve essere eseguita soltanto se l’heap contiene almeno un elemento e Insert soltanto se l’heap non ha raggiunto la massima taglia del vettore che lo contiene.

Analizzare le complessità del programma e delle funzioni.

Riferimenti

Documenti correlati

Qualora lo studente debba avere in dotazione D.P.I., la Struttura ospitante dovrà fornirli e assicurarsi che l’utilizzo sia preceduto da adeguata formazione. dovranno essere conformi

Fondamenti della reattività chimica: primo principio della termodinamica; entalpia per le trasformazioni chimiche; secondo principio della termodinamica e

Ricerca e ordinamento, Paolo Bison, FI08, 2008-09-29 – p.29. Merge sort: codice

• prendendo un dato alla volta dalla sotto-sequenza il cui primo dato è

• prendendo un dato alla volta dalla sotto-sequenza il cui primo dato è il minore. Ricerca e ordinamento, Paolo

pertanto, la ricerca del predecessore (successore) non ha nulla a che fare con relazioni padre- figlio  sull’albero. Concentriamoci dapprima sulla ricerca del predecessore.. k=20

pertanto, la ricerca del predecessore (successore) non ha nulla a che fare con relazioni padre- figlio  sull’albero. Concentriamoci dapprima sulla ricerca del predecessore.. k=20

Per poter adempiere alle disposizioni normative in materia di protezione dei dati personali, l'Istituto ha realizzato una applicazione finalizzata al censimento e alla