Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #if ! defined( ARVORE_ )
- #define ARVORE_
- /***************************************************************************
- *
- * $MCD Módulo de definição: Módulo árvore
- *
- * Arquivo gerado: ARVORE.H
- * Letras identificadoras: ARV
- *
- * Nome da base de software: Exemplo de teste automatizado
- * Arquivo da base de software: D:\AUTOTEST\PROJETOS\SIMPLES.BSW
- *
- * Projeto: Disciplinas INF 1628 / 1301
- * Gestor: DI/PUC-Rio
- * Autores: avs - Arndt von Staa
- *
- * $HA Histórico de evolução:
- * Versão Autor Data Observações
- * 3.00 avs 28/02/2003 Uniformização da interface das funções e
- * de todas as condições de retorno.
- * 2.00 avs 03/08/2002 Eliminação de código duplicado, reestruturação
- * 1.00 avs 15/08/2001 Início do desenvolvimento
- *
- * $ED Descrição do módulo
- * Este módulo implementa um conjunto simples de funções para criar e
- * explorar árvores binárias.
- * A árvore possui uma cabeça que contém uma referência para a raíz da
- * árvore e outra para um nó corrente da árvore.
- * A cada momento o módulo admite no máximo uma única árvore.
- * Ao iniciar a execução do programa não existe árvore.
- * A árvore poderá estar vazia. Neste caso a raiz e o nó corrente
- * serão nulos, embora a cabeça esteja definida.
- * O nó corrente será nulo se e somente se a árvore estiver vazia.
- *
- ***************************************************************************/
- #if defined( ARVORE_OWN )
- #define ARVORE_EXT
- #else
- #define ARVORE_EXT extern
- #endif
- /***********************************************************************
- *
- * $TC Tipo de dados: ARV Condicoes de retorno
- *
- *
- ***********************************************************************/
- typedef enum {
- ARV_CondRetOK = 0 ,
- /* Executou correto */
- ARV_CondRetNaoCriouRaiz = 1 ,
- /* Não criou nó raiz */
- ARV_CondRetErroEstrutura = 2 ,
- /* Estrutura da árvore está errada */
- ARV_CondRetNaoEhFolha = 3 ,
- /* Não é folha relativa à direção de inserção desejada */
- ARV_CondRetArvoreNaoExiste = 4 ,
- /* Árvore não existe */
- ARV_CondRetArvoreVazia = 5 ,
- /* Árvore está vazia */
- ARV_CondRetNohEhRaiz = 6 ,
- /* Nó corrente é raiz */
- ARV_CondRetNaoPossuiFilho = 7 ,
- /* Nó corrente não possui filho na direção desejada */
- ARV_CondRetFaltouMemoria = 8 ,
- /* Faltou memória ao alocar dados */
- ARV_CondRetCosturaJaExiste = 9,
- /* A costura ja aconteceu */
- ARV_CondRetCosturaNaoExiste = 10
- /* A costura ainda nao ocorreu */
- } ARV_tpCondRet ;
- /***********************************************************************
- *
- * $FC Função: ARV Costurar Folhas
- *
- * $ED Descrição da função
- * Costura as folhas da arvore, em uma lista ordenada alfabeticamente
- *
- * $FV Valor retornado
- * ARV_CondRetOK
- * ARV_CondRetArvoreNaoExiste
- * ARV_CondRetArvoreVazia
- * ARV_CondRetCosturaJaExiste;
- *
- ****************************************************************/
- ARV_tpCondRet ARV_CosturarFolha( void );
- /***********************************************************************
- *
- * $FC Função: ARV Print nos Costurados
- *
- * $ED Descrição da função
- * Imprime todos os valores das folhas que foram costurados anteriormente
- *
- * $FV Valor retornado
- * ARV_CondRetOK
- * ARV_CondRetArvoreNaoExiste
- * ARV_CondRetArvoreVazia
- * ARV_CondRetCosturaNaoExiste
- *
- ****************************************************************/
- ARV_tpCondRet ARV_printNosCosturados( void );
- /***********************************************************************
- *
- * $FC Função: ARV Criar árvore
- *
- * $ED Descrição da função
- * Cria uma nova árvore vazia.
- * Caso já exista uma árvore, esta será destruída.
- *
- * $FV Valor retornado
- * ARV_CondRetOK
- * ARV_CondRetFaltouMemoria
- *
- ***********************************************************************/
- ARV_tpCondRet ARV_CriarArvore( void ) ;
- /***********************************************************************
- *
- * $FC Função: ARV Destruir árvore
- *
- * $ED Descrição da função
- * Destrói o corpo e a cabeça da árvore, anulando a árvore corrente.
- * Faz nada caso a árvore corrente não exista.
- *
- ***********************************************************************/
- void ARV_DestruirArvore( void ) ;
- /***********************************************************************
- *
- * $FC Função: ARV Adicionar filho à esquerda
- *
- * $EP Parâmetros
- * $P ValorParm - valor a ser inserido no novo nó.
- *
- * $FV Valor retornado
- * ARV_CondRetOK
- * ARV_CondRetErroEstrutura
- * ARV_CondRetFaltouMemoria
- * ARV_CondRetNaoEhFolha - caso não seja folha para a esquerda
- *
- ***********************************************************************/
- ARV_tpCondRet ARV_InserirEsquerda( char ValorParm ) ;
- /***********************************************************************
- *
- * $FC Função: ARV Adicionar filho à direita
- *
- * $EP Parâmetros
- * $P ValorParm - valor a ser inserido no novo nó
- *
- * $FV Valor retornado
- * ARV_CondRetOK
- * ARV_CondRetErroEstrutura
- * ARV_CondRetFaltouMemoria
- * ARV_CondRetNaoEhFolha - caso não seja folha para a direita
- *
- ***********************************************************************/
- ARV_tpCondRet ARV_InserirDireita( char ValorParm ) ;
- /***********************************************************************
- *
- * $FC Função: ARV Ir para nó pai
- *
- * $FV Valor retornado
- * ARV_CondRetOK
- * ARV_CondRetArvoreNaoExiste
- * ARV_CondRetArvoreVazia
- * ARV_CondRetNoEhRaiz
- *
- ***********************************************************************/
- ARV_tpCondRet ARV_IrPai( void ) ;
- /***********************************************************************
- *
- * $FC Função: ARV Ir para nó à esquerda
- *
- * $FV Valor retornado
- * ARV_CondRetOK
- * ARV_CondRetArvoreNaoExiste
- * ARV_CondRetArvoreVazia
- * ARV_CondRetNaoPossuiFilho - nó corrente não possui filho à esquerda
- *
- ***********************************************************************/
- ARV_tpCondRet ARV_IrNoEsquerda( void ) ;
- /***********************************************************************
- *
- * $FC Função: ARV Ir para nó à direita
- *
- * $FV Valor retornado
- * ARV_CondRetOK
- * ARV_CondRetArvoreNaoExiste
- * ARV_CondRetArvoreVazia
- * ARV_CondRetNaoPossuiFilho - nó corrente não possui filho à direita
- *
- ***********************************************************************/
- ARV_tpCondRet ARV_IrNoDireita( void ) ;
- /***********************************************************************
- *
- * $FC Função: ARV Obter valor corrente
- *
- * $EP Parâmetros
- * $P ValorParm - é o parâmetro que receberá o valor contido no nó.
- * Este parâmetro é passado por referência.
- *
- * $FV Valor retornado
- * ARV_CondRetOK
- * ARV_CondRetArvoreNaoExiste
- * ARV_CondRetArvoreVazia
- *
- ***********************************************************************/
- ARV_tpCondRet ARV_ObterValorCorr( char * ValorParm ) ;
- #undef ARVORE_EXT
- /********** Fim do módulo de definição: Módulo árvore **********/
- #else
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement