CARS
|
Functions | |
static unsigned int | padre (int i) |
static unsigned int | sinistro (int i) |
static void | scambia (heap_elem_t *x, heap_elem_t *y) |
static unsigned int | min_padre_figli (heap_array_t *coda, unsigned int padre) |
void | reorganize_heap (heap_array_t *coda, unsigned int i) |
int | is_empty (heap_array_t *coda) |
void | enqueue (heap_array_t *coda, unsigned int elem, double dist) |
int | decrease_key (heap_array_t *coda, unsigned int elem, double new_dist) |
int | dequeue (heap_array_t *coda) |
Si dichiara che il contenuto di questo file e' in ogni sua parte opera originale dell' autore.
int decrease_key | ( | heap_array_t * | coda, |
unsigned int | elem, | ||
double | new_dist | ||
) |
Se un elemento e' presente nella coda di priorita', diminuisce il suo perso
[in,out] | coda | puntatore alla coda di priorita' |
[in] | elem | indice dell'elemento nel grafo |
[in] | new_dist | nuovo peso da assegnare all'elemento |
1 | se l'elemento e' stato aggiornato |
0 | se l'elemento non e' stato trovato nella coda |
References heap_array::array, heap_elem::dist, heap_array::heap_size, heap_elem::label, and reorganize_heap().
Referenced by dijkstra().
int dequeue | ( | heap_array_t * | coda | ) |
Rimuove l'elemento di peso minimo dalla coda di priorita'
[in,out] | coda | puntatore alla coda di priorita' |
i | l'indice nel grafo dell'elemento estratto |
References heap_array::array, heap_array::heap_size, heap_elem::label, reorganize_heap(), and scambia().
Referenced by dijkstra().
void enqueue | ( | heap_array_t * | coda, |
unsigned int | elem, | ||
double | dist | ||
) |
Inserisce un elemento nella coda di priorita'
[in,out] | coda | puntatore alla coda di priorita' |
[in] | elem | indice dell'elemento nel grafo |
[in] | dist | peso dell'elemento |
References heap_array::array, heap_elem::dist, heap_array::heap_size, heap_elem::label, and reorganize_heap().
Referenced by dijkstra().
int is_empty | ( | heap_array_t * | coda | ) |
verifica se la coda di priorita' e' vuota
[in] | coda | puntatore alla coda di priorita' |
0 | se la coda e' vuota |
n | un intero diverso da 0 se la coda non e' vuota |
References heap_array::heap_size.
Referenced by dijkstra().
static unsigned int min_padre_figli | ( | heap_array_t * | coda, |
unsigned int | padre | ||
) | [static] |
Funzione static per cercare il minimo fra il padre ed i figli all'interno della coda di priorita'
[in] | coda | la coda di priorita |
[in] | padre | indice del padre |
l'indice | del minimo fra il padre ed i 2 figli |
References heap_array::array, heap_elem::dist, heap_array::heap_size, padre(), and sinistro().
Referenced by reorganize_heap().
static unsigned int padre | ( | int | i | ) | [static] |
Funzione static per ricavare l'indice del padre nella coda, a partire dall'indice del figlio
i | [in] indice del nodo |
Referenced by min_padre_figli(), and reorganize_heap().
void reorganize_heap | ( | heap_array_t * | coda, |
unsigned int | i | ||
) |
Funzione per riorganizzare la coda di priorita' dopo che sono state effettuate delle modifiche sulla stessa
[in,out] | coda | la coda di priorita' |
[in] | i | indice che indica rispetto a quale nodo deve essere effettuata la riorganizzazione |
References heap_array::array, heap_elem::dist, heap_array::heap_size, min_padre_figli(), padre(), scambia(), and sinistro().
Referenced by decrease_key(), dequeue(), and enqueue().
static void scambia | ( | heap_elem_t * | x, |
heap_elem_t * | y | ||
) | [static] |
Funzione static per scambiare due elementi nella coda di priorita'
[in,out] | x | primo elemento |
[in,out] | y | secondo elemento |
Referenced by dequeue(), and reorganize_heap().
static unsigned int sinistro | ( | int | i | ) | [static] |
Funzione static per ricavare l'indice del figlio nella coda, a partire dall'indice del padre
i | [in] indice del nodo |
Referenced by min_padre_figli(), and reorganize_heap().