minheap.h
Vai alla documentazione di questo file.
1 
7 #ifndef MINHEAP_H_
8 #define MINHEAP_H_
9 
10 #include "elemtype.h"
11 
12 #include <stdbool.h>
13 #include <stdio.h>
14 
15 /*****************************************************************************/
16 /* Node & Primitives */
17 /*****************************************************************************/
18 
20 struct Heap {
21  ElemType *data;
22  size_t size;
23 };
25 typedef struct Heap Heap;
26 
35 int HeapLeft(int i);
36 
45 int HeapRight(int i);
46 
55 int HeapParent(int i);
56 
63 
73 void HeapMinInsertNode(Heap *h, const ElemType *e);
74 
83 bool HeapIsEmpty(const Heap *h);
84 
93 ElemType* HeapGetNodeValue(const Heap *h, int i);
94 
105 void HeapMinMoveUp(Heap *h, int i);
106 
118 void HeapMinMoveDown(Heap *h, int i);
119 
126 void HeapDelete(Heap *h);
127 
128 /*****************************************************************************/
129 /* Non Primitives */
130 /*****************************************************************************/
131 
143 void HeapWrite(const Heap *h, FILE *f);
144 
155 void HeapWriteStdout(const Heap *i);
156 
157 #endif // MINHEAP_H_
158 
HeapMinInsertNode
void HeapMinInsertNode(Heap *h, const ElemType *e)
La funzione HeapMinInsertNode() aggiunge un nodo a una coda di priorità esistente,...
Definition: minheap.c:34
HeapCreateEmpty
Heap * HeapCreateEmpty()
La funzione HeapCreateEmpty() crea e ritorna una coda di priorità vuota implementata mediante array.
Definition: minheap.c:27
HeapLeft
int HeapLeft(int i)
Dato l'indice di un nodo della coda di priorità, la funzione HeapLeft() ritorna l'indice del suo figl...
Definition: minheap.c:11
Heap::data
ElemType * data
Definition: minheap.h:21
HeapDelete
void HeapDelete(Heap *h)
La funzione HeapDelete() libera la memoria occupata dall'heap.
Definition: minheap.c:85
HeapIsEmpty
bool HeapIsEmpty(const Heap *h)
La funzione HeapIsEmpty() verifica se una coda di priorità esistente è vuota.
Definition: minheap.c:23
HeapMinMoveUp
void HeapMinMoveUp(Heap *h, int i)
Dato un heap e l'indice di un nodo, la funzione HeapMinMoveUp() sposta il nodo verso l'alto,...
Definition: minheap.c:53
HeapWrite
void HeapWrite(const Heap *h, FILE *f)
La funzione HeapWrite() stampa la coda di priorità su file. Nello specifico, la funzione stampa il ca...
Definition: minheap.c:97
HeapParent
int HeapParent(int i)
Dato l'indice di un nodo della coda di priorità, la funzione HeapParent() ritorna l'indice del nodo p...
Definition: minheap.c:19
Heap::size
size_t size
Definition: minheap.h:22
Heap
Definizione del tipo struct Heap.
Definition: minheap.h:20
HeapMinMoveDown
void HeapMinMoveDown(Heap *h, int i)
Dato un heap e l'indice di un nodo, la funzione HeapMinMoveDown() sposta il nodo verso il basso,...
Definition: minheap.c:60
HeapGetNodeValue
ElemType * HeapGetNodeValue(const Heap *h, int i)
La funzione HeapGetNodeValue() ritorna un puntatore all'elemento contenuto nel nodo di indice specifi...
Definition: minheap.c:43
HeapRight
int HeapRight(int i)
Dato l'indice di un nodo della coda di priorità, la funzione HeapRight() ritorna l'indice del suo fig...
Definition: minheap.c:15
HeapWriteStdout
void HeapWriteStdout(const Heap *i)
La funzione HeapWriteStdout() stampa lo heap specificato su stdout. Nello specifico,...
Definition: minheap.c:108