![]() |
|
#include "elemtype.h"
#include <stdbool.h>
#include <stdio.h>
Vai al codice sorgente di questo file.
Composti | |
struct | Heap |
Definizione del tipo struct Heap . Continua... | |
Ridefinizioni di tipo (typedef) | |
typedef struct Heap | Heap |
Definizione di un nome alternativo per struct Heap . | |
Funzioni | |
int | HeapLeft (int i) |
Dato l'indice di un nodo della coda di priorità, la funzione HeapLeft() ritorna l'indice del suo figlio sinistro. Continua... | |
int | HeapRight (int i) |
Dato l'indice di un nodo della coda di priorità, la funzione HeapRight() ritorna l'indice del suo figlio destro. Continua... | |
int | HeapParent (int i) |
Dato l'indice di un nodo della coda di priorità, la funzione HeapParent() ritorna l'indice del nodo padre. Continua... | |
Heap * | HeapCreateEmpty () |
La funzione HeapCreateEmpty() crea e ritorna una coda di priorità vuota implementata mediante array. Continua... | |
void | HeapMinInsertNode (Heap *h, const ElemType *e) |
La funzione HeapMinInsertNode() aggiunge un nodo a una coda di priorità esistente, garantendo che le proprietà (min-)heap siano rispettate. Continua... | |
bool | HeapIsEmpty (const Heap *h) |
La funzione HeapIsEmpty() verifica se una coda di priorità esistente è vuota. Continua... | |
ElemType * | HeapGetNodeValue (const Heap *h, int i) |
La funzione HeapGetNodeValue() ritorna un puntatore all'elemento contenuto nel nodo di indice specificato. Continua... | |
void | HeapMinMoveUp (Heap *h, int i) |
Dato un heap e l'indice di un nodo, la funzione HeapMinMoveUp() sposta il nodo verso l'alto, ovvero lo scambia con il nodo padre ricorsivamente fino a quando le condizione (min-)heap non sono rispettate. Continua... | |
void | HeapMinMoveDown (Heap *h, int i) |
Dato un heap e l'indice di un nodo, la funzione HeapMinMoveDown() sposta il nodo verso il basso, ovvero lo scambia con il minore dei figli ricorsivamente fino a quando le condizione (min-)heap non sono rispettate. Continua... | |
void | HeapDelete (Heap *h) |
La funzione HeapDelete() libera la memoria occupata dall'heap. Continua... | |
void | HeapWrite (const Heap *h, FILE *f) |
La funzione HeapWrite() stampa la coda di priorità su file. Nello specifico, la funzione stampa il carattere "[" seguito dagli elementi del vettore che implementa la coda di priorità, separati dai caratteri ", ". Infine viene stampato il carattere "]". La stampa degli elementi dipende dalla definizione di ElemType . Continua... | |
void | HeapWriteStdout (const Heap *i) |
La funzione HeapWriteStdout() stampa lo heap specificato su stdout . Nello specifico, la funzione stampa il carattere "[" seguito dagli elementi del vettore che implementa la coda di priorità, separati dai caratteri ", ". Infine viene stampato il carattere "]". La stampa degli elementi dipende dalla definizione di ElemType . Continua... | |
Questo file contiene la definizione del tipo Heap
e la documentazione delle funzioni primitive (e non) relative alle code di priorità (heap). Si noti che il comportamento di queste funzioni è indipendente dalla definizione di ElemType
.
Definizione nel file minheap.h.
Heap* HeapCreateEmpty | ( | ) |
La funzione HeapCreateEmpty()
crea e ritorna una coda di priorità vuota implementata mediante array.
void HeapDelete | ( | Heap * | h | ) |
La funzione HeapDelete()
libera la memoria occupata dall'heap.
[in] | h | Heap di cui liberare la memoria. |
ElemType* HeapGetNodeValue | ( | const Heap * | h, |
int | i | ||
) |
La funzione HeapGetNodeValue()
ritorna un puntatore all'elemento contenuto nel nodo di indice specificato.
[in] | h | (min-)heap. |
[in] | i | Indice del nodo. |
i
. bool HeapIsEmpty | ( | const Heap * | h | ) |
La funzione HeapIsEmpty()
verifica se una coda di priorità esistente è vuota.
[in] | h | Heap da testare. |
true
se lo heap è vuoto, ovvero contiene zero elementi (h->size == 0
), false
altrimenti. int HeapLeft | ( | int | i | ) |
Dato l'indice di un nodo della coda di priorità, la funzione HeapLeft()
ritorna l'indice del suo figlio sinistro.
[in] | i | Indice di un nodo della coda. |
i
. Non e' detto che il nodo avente l'indice ritornato sia effettivamente presente nella coda. void HeapMinInsertNode | ( | Heap * | h, |
const ElemType * | e | ||
) |
La funzione HeapMinInsertNode()
aggiunge un nodo a una coda di priorità esistente, garantendo che le proprietà (min-)heap siano rispettate.
[in] | h | (min-)heap. |
[in] | e | Valore da utilizzare per la creazione del nuovo nodo. |
void HeapMinMoveDown | ( | Heap * | h, |
int | i | ||
) |
Dato un heap e l'indice di un nodo, la funzione HeapMinMoveDown()
sposta il nodo verso il basso, ovvero lo scambia con il minore dei figli ricorsivamente fino a quando le condizione (min-)heap non sono rispettate.
[i] | h (min-)heap. Tutti i nodi di h , ad eccezione di quello di indice i , devono rispettare le condizioni (min-)heap. |
[i] | i Indice del nodo su cui applicare la procedura. |
void HeapMinMoveUp | ( | Heap * | h, |
int | i | ||
) |
Dato un heap e l'indice di un nodo, la funzione HeapMinMoveUp()
sposta il nodo verso l'alto, ovvero lo scambia con il nodo padre ricorsivamente fino a quando le condizione (min-)heap non sono rispettate.
[i] | h (min-)heap. Tutti i nodi di h , ad eccezione di quello di indice i , devono rispettare le condizioni (min-)heap. |
[i] | i Indice del nodo su cui applicare la procedura. |
int HeapParent | ( | int | i | ) |
Dato l'indice di un nodo della coda di priorità, la funzione HeapParent()
ritorna l'indice del nodo padre.
[in] | i | Indice di un nodo della coda. |
i
. Non è detto che il nodo avente l'indice ritornato sia effettivamente presente nella coda. int HeapRight | ( | int | i | ) |
Dato l'indice di un nodo della coda di priorità, la funzione HeapRight()
ritorna l'indice del suo figlio destro.
[in] | i | Indice di un nodo della coda. |
i
. Non è detto che il nodo avente l'indice ritornato sia effettivamente presente nella coda. void HeapWrite | ( | const Heap * | h, |
FILE * | f | ||
) |
La funzione HeapWrite()
stampa la coda di priorità su file. Nello specifico, la funzione stampa il carattere "[" seguito dagli elementi del vettore che implementa la coda di priorità, separati dai caratteri ", ". Infine viene stampato il carattere "]". La stampa degli elementi dipende dalla definizione di ElemType
.
[in] | h | Heap da stampare su file. Lo heap non viene modificato. |
[in] | f | FILE * su cui stampare lo heap. |
void HeapWriteStdout | ( | const Heap * | i | ) |
La funzione HeapWriteStdout()
stampa lo heap specificato su stdout
. Nello specifico, la funzione stampa il carattere "[" seguito dagli elementi del vettore che implementa la coda di priorità, separati dai caratteri ", ". Infine viene stampato il carattere "]". La stampa degli elementi dipende dalla definizione di ElemType
.
[in] | h | Heap da stampare su stdout . Lo heap non viene modificato. |