-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathpriority_queue.h
More file actions
58 lines (48 loc) · 1.57 KB
/
Copy pathpriority_queue.h
File metadata and controls
58 lines (48 loc) · 1.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include "compress.h"
// Declaração de TAD
typedef struct prio_queue Prio_queue;
typedef struct huffman_tree h_tree;
struct prio_queue {
h_tree* head; // Ponteiro para o primeiro elemento da priority queue
int quant_nodes;
};
/*
* Cria uma fila de prioridades vazia. Sem parâmetros. Retorna um
* ponteiro para o primeiro item da fila.
*/
Prio_queue* create_queue();
/*
* Cria um nó. Recebe um caractere e sua frequência. Retorna um
* ponteiro para um nó.
*/
h_tree* create_node(u_char ch, u_int freq);
/*
* Verifica se a fila está vazia. Recebe um ponteiro para o
* primeiro item da fila. Retorna 1 caso a fila seja vazia
* e 0 caso contrário.
*/
int que_empty(Prio_queue* p);
/*
* Adiciona um nó na fila de prioridade. Recebe um ponteiro
* para o primeiro item da fila, um caractere e sua frequência.
* Não retorna nada.
*/
void add_node_queue(Prio_queue* p, u_char ch, u_int freq);
/*
* Adiciona um nó pai de outros dois nós dados na fila de priori-
* dade. Recebe um ponteiro para o primeiro item da fila, e um
* ponteiro para um nó pai. Não retorna nada;
*/
void add_parent_node (Prio_queue *p_queue, h_tree *parent_node);
/*
* Remove um item da fila de prioridade. Recebe um ponteiro para
* o primeiro item da fila. Retorna um ponteiro para o item remo-
* vido.
*/
h_tree* dequeue_node (Prio_queue *p_queue);
/*
* Constrói uma fila de prioridade a partir de um array de
* frequência dado. Recebe um ponteiro para o primeiro item
* da fila e o array de frequências. Não retorna nada;
*/
void construct_queue(Prio_queue* queu, u_int str[]);