Data Structures UFC  1.0.0
Essential Data Structures for C language
bst.h
Go to the documentation of this file.
1 
13 #ifndef BST_H
14 #define BST_H
15 
22 // definition of BinaryTree and struct node.
23 #include "tree/binary-tree.h"
24 
25 /* Binary Search Tree DataType Definition */
26 typedef struct BinaryNode BSTree;
27 
28 #define BST_EMPTY (BSTree*) 0
29 
30 /* Função que cria um nó de uma Árvore */
32 
33 /* Função que cria uma Árvore Binária de Busca Vazia. */
34 BSTree* bst_create(void);
35 
36 /* Testa se uma Árvore Binária é vazia. */
37 int bst_empty(BSTree *t);
38 
39 /* Função que determina se um caractere pertence à Árvore. */
40 int bst_exists(BSTree *t, Type c);
41 
42 /* Função que busca a sub-árvore que contém um inteiro. */
43 BSTree* bst_search(BSTree *t,Type c);
44 
45 /* Função que imprime os elementos de uma Árvore. */
46 void bst_print(BSTree *t);
47 
48 /* Função que retorna a altura de uma Árvore. */
49 int bst_height(BSTree *t);
50 
51 /* Função que insere um inteiro em uma Árvore. */
52 BSTree* bst_insert(BSTree *t, Type c);
53 
54 /* Função que remove um inteiro em uma Árvore. */
55 BSTree* bst_remove(BSTree *t, Type c);
56 
57 /* Libera o espaço alocado para uma Árvore. */
58 void bst_free(BSTree *t);
59 
60 /* Imprime a árvore linearmente em pós-ordem */
61 void bst_posfix(BSTree *t);
62 
63 /* Imprime a árvore linearmente em pré-ordem */
64 void bst_prefix(BSTree *t);
65 
66 /* Imprime a árvore linearmente de forma simétrica */
67 void bst_infix(BSTree *t);
68 
69 /* Count the number of nodes */
70 int bst_nodes(BSTree *t);
71 
72 /* Return the number of leafs which are prime numbers */
73 int bst_leafs_primes(BSTree *t);
74 
75 /* Return the number of nodes that has two children */
76 int bst_two_children(BSTree *t);
77 
78 /* Return the number of nodes which have equal branch heights*/
80 
81 /* Compare if t1 and t2 are equal by traversal tree search */
82 int bst_equals(BSTree *t1, BSTree *t2);
83 
84 #endif
int bst_exists(BSTree *t, Type c)
int bst_height(BSTree *t)
void bst_free(BSTree *t)
BSTree * bst_search(BSTree *t, Type c)
struct BinaryNode * right
Definition: binary-tree.h:26
int bst_empty(BSTree *t)
Definition: binary-tree.h:23
void bst_posfix(BSTree *t)
void bst_prefix(BSTree *t)
void bst_print(BSTree *t)
void bst_infix(BSTree *t)
struct BinaryNode * left
Definition: binary-tree.h:25
BSTree * bst_remove(BSTree *t, Type c)
int bst_nodes_equal_height(BSTree *t)
int bst_equals(BSTree *t1, BSTree *t2)
BSTree * bst_create_node(BSTree *left, BSTree *right, Type value)
Type value
Definition: binary-tree.h:24
BSTree * bst_create(void)
BSTree * bst_insert(BSTree *t, Type c)
int bst_two_children(BSTree *t)
int bst_leafs_primes(BSTree *t)
int bst_nodes(BSTree *t)