Advertisement
Guest User

Untitled

a guest
Mar 27th, 2015
256
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.54 KB | None | 0 0
  1. #if ! defined( ARVORE_ )
  2. #define ARVORE_
  3. /***************************************************************************
  4. *
  5. * $MCD Módulo de definição: Módulo árvore
  6. *
  7. * Arquivo gerado: ARVORE.H
  8. * Letras identificadoras: ARV
  9. *
  10. * Nome da base de software: Exemplo de teste automatizado
  11. * Arquivo da base de software: D:\AUTOTEST\PROJETOS\SIMPLES.BSW
  12. *
  13. * Projeto: Disciplinas INF 1628 / 1301
  14. * Gestor: DI/PUC-Rio
  15. * Autores: avs - Arndt von Staa
  16. *
  17. * $HA Histórico de evolução:
  18. * Versão Autor Data Observações
  19. * 3.00 avs 28/02/2003 Uniformização da interface das funções e
  20. * de todas as condições de retorno.
  21. * 2.00 avs 03/08/2002 Eliminação de código duplicado, reestruturação
  22. * 1.00 avs 15/08/2001 Início do desenvolvimento
  23. *
  24. * $ED Descrição do módulo
  25. * Este módulo implementa um conjunto simples de funções para criar e
  26. * explorar árvores binárias.
  27. * A árvore possui uma cabeça que contém uma referência para a raíz da
  28. * árvore e outra para um nó corrente da árvore.
  29. * A cada momento o módulo admite no máximo uma única árvore.
  30. * Ao iniciar a execução do programa não existe árvore.
  31. * A árvore poderá estar vazia. Neste caso a raiz e o nó corrente
  32. * serão nulos, embora a cabeça esteja definida.
  33. * O nó corrente será nulo se e somente se a árvore estiver vazia.
  34. *
  35. ***************************************************************************/
  36.  
  37. #if defined( ARVORE_OWN )
  38. #define ARVORE_EXT
  39. #else
  40. #define ARVORE_EXT extern
  41. #endif
  42.  
  43.  
  44. /***********************************************************************
  45. *
  46. * $TC Tipo de dados: ARV Condicoes de retorno
  47. *
  48. *
  49. ***********************************************************************/
  50.  
  51. typedef enum {
  52.  
  53. ARV_CondRetOK = 0 ,
  54. /* Executou correto */
  55.  
  56. ARV_CondRetNaoCriouRaiz = 1 ,
  57. /* Não criou nó raiz */
  58.  
  59. ARV_CondRetErroEstrutura = 2 ,
  60. /* Estrutura da árvore está errada */
  61.  
  62. ARV_CondRetNaoEhFolha = 3 ,
  63. /* Não é folha relativa à direção de inserção desejada */
  64.  
  65. ARV_CondRetArvoreNaoExiste = 4 ,
  66. /* Árvore não existe */
  67.  
  68. ARV_CondRetArvoreVazia = 5 ,
  69. /* Árvore está vazia */
  70.  
  71. ARV_CondRetNohEhRaiz = 6 ,
  72. /* Nó corrente é raiz */
  73.  
  74. ARV_CondRetNaoPossuiFilho = 7 ,
  75. /* Nó corrente não possui filho na direção desejada */
  76.  
  77. ARV_CondRetFaltouMemoria = 8 ,
  78. /* Faltou memória ao alocar dados */
  79.  
  80. ARV_CondRetCosturaJaExiste = 9,
  81. /* A costura ja aconteceu */
  82.  
  83. ARV_CondRetCosturaNaoExiste = 10
  84. /* A costura ainda nao ocorreu */
  85. } ARV_tpCondRet ;
  86.  
  87. /***********************************************************************
  88. *
  89. * $FC Função: ARV Costurar Folhas
  90. *
  91. * $ED Descrição da função
  92. * Costura as folhas da arvore, em uma lista ordenada alfabeticamente
  93. *
  94. * $FV Valor retornado
  95. * ARV_CondRetOK
  96. * ARV_CondRetArvoreNaoExiste
  97. * ARV_CondRetArvoreVazia
  98. * ARV_CondRetCosturaJaExiste;
  99. *
  100. ****************************************************************/
  101.  
  102. ARV_tpCondRet ARV_CosturarFolha( void );
  103.  
  104.  
  105.  
  106. /***********************************************************************
  107. *
  108. * $FC Função: ARV Print nos Costurados
  109. *
  110. * $ED Descrição da função
  111. * Imprime todos os valores das folhas que foram costurados anteriormente
  112. *
  113. * $FV Valor retornado
  114. * ARV_CondRetOK
  115. * ARV_CondRetArvoreNaoExiste
  116. * ARV_CondRetArvoreVazia
  117. * ARV_CondRetCosturaNaoExiste
  118. *
  119. ****************************************************************/
  120.  
  121. ARV_tpCondRet ARV_printNosCosturados( void );
  122.  
  123. /***********************************************************************
  124. *
  125. * $FC Função: ARV Criar árvore
  126. *
  127. * $ED Descrição da função
  128. * Cria uma nova árvore vazia.
  129. * Caso já exista uma árvore, esta será destruída.
  130. *
  131. * $FV Valor retornado
  132. * ARV_CondRetOK
  133. * ARV_CondRetFaltouMemoria
  134. *
  135. ***********************************************************************/
  136.  
  137. ARV_tpCondRet ARV_CriarArvore( void ) ;
  138.  
  139.  
  140. /***********************************************************************
  141. *
  142. * $FC Função: ARV Destruir árvore
  143. *
  144. * $ED Descrição da função
  145. * Destrói o corpo e a cabeça da árvore, anulando a árvore corrente.
  146. * Faz nada caso a árvore corrente não exista.
  147. *
  148. ***********************************************************************/
  149.  
  150. void ARV_DestruirArvore( void ) ;
  151.  
  152.  
  153. /***********************************************************************
  154. *
  155. * $FC Função: ARV Adicionar filho à esquerda
  156. *
  157. * $EP Parâmetros
  158. * $P ValorParm - valor a ser inserido no novo nó.
  159. *
  160. * $FV Valor retornado
  161. * ARV_CondRetOK
  162. * ARV_CondRetErroEstrutura
  163. * ARV_CondRetFaltouMemoria
  164. * ARV_CondRetNaoEhFolha - caso não seja folha para a esquerda
  165. *
  166. ***********************************************************************/
  167.  
  168. ARV_tpCondRet ARV_InserirEsquerda( char ValorParm ) ;
  169.  
  170.  
  171. /***********************************************************************
  172. *
  173. * $FC Função: ARV Adicionar filho à direita
  174. *
  175. * $EP Parâmetros
  176. * $P ValorParm - valor a ser inserido no novo nó
  177. *
  178. * $FV Valor retornado
  179. * ARV_CondRetOK
  180. * ARV_CondRetErroEstrutura
  181. * ARV_CondRetFaltouMemoria
  182. * ARV_CondRetNaoEhFolha - caso não seja folha para a direita
  183. *
  184. ***********************************************************************/
  185.  
  186. ARV_tpCondRet ARV_InserirDireita( char ValorParm ) ;
  187.  
  188.  
  189. /***********************************************************************
  190. *
  191. * $FC Função: ARV Ir para nó pai
  192. *
  193. * $FV Valor retornado
  194. * ARV_CondRetOK
  195. * ARV_CondRetArvoreNaoExiste
  196. * ARV_CondRetArvoreVazia
  197. * ARV_CondRetNoEhRaiz
  198. *
  199. ***********************************************************************/
  200.  
  201. ARV_tpCondRet ARV_IrPai( void ) ;
  202.  
  203.  
  204. /***********************************************************************
  205. *
  206. * $FC Função: ARV Ir para nó à esquerda
  207. *
  208. * $FV Valor retornado
  209. * ARV_CondRetOK
  210. * ARV_CondRetArvoreNaoExiste
  211. * ARV_CondRetArvoreVazia
  212. * ARV_CondRetNaoPossuiFilho - nó corrente não possui filho à esquerda
  213. *
  214. ***********************************************************************/
  215.  
  216. ARV_tpCondRet ARV_IrNoEsquerda( void ) ;
  217.  
  218.  
  219. /***********************************************************************
  220. *
  221. * $FC Função: ARV Ir para nó à direita
  222. *
  223. * $FV Valor retornado
  224. * ARV_CondRetOK
  225. * ARV_CondRetArvoreNaoExiste
  226. * ARV_CondRetArvoreVazia
  227. * ARV_CondRetNaoPossuiFilho - nó corrente não possui filho à direita
  228. *
  229. ***********************************************************************/
  230.  
  231. ARV_tpCondRet ARV_IrNoDireita( void ) ;
  232.  
  233.  
  234. /***********************************************************************
  235. *
  236. * $FC Função: ARV Obter valor corrente
  237. *
  238. * $EP Parâmetros
  239. * $P ValorParm - é o parâmetro que receberá o valor contido no nó.
  240. * Este parâmetro é passado por referência.
  241. *
  242. * $FV Valor retornado
  243. * ARV_CondRetOK
  244. * ARV_CondRetArvoreNaoExiste
  245. * ARV_CondRetArvoreVazia
  246. *
  247. ***********************************************************************/
  248.  
  249. ARV_tpCondRet ARV_ObterValorCorr( char * ValorParm ) ;
  250.  
  251. #undef ARVORE_EXT
  252.  
  253. /********** Fim do módulo de definição: Módulo árvore **********/
  254.  
  255. #else
  256. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement