Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <string>
- #include <stdio.h>
- using namespace std;
- struct ARVB {
- string nome;
- char numero[8];
- char email[50];
- int RG;
- struct ARVB* esq;
- struct ARVB* dir;
- };
- typedef struct ARVB ARVB;
- ARVB* arv_criavazia (void);
- ARVB* arv_cria (char c, ARVB* e, ARVB* d);
- ARVB* arv_libera (ARVB* a);
- int arv_vazia (ARVB* a);
- int arv_pertence (ARVB* a, int num);
- void arv_imprime (ARVB* a);
- int main(int argc, char** argv) {
- ARVB* a[9];
- /* sub-árvore 'h' */ ARVB* a[1] = arv_cria('i',arv_criavazia(),arv_criavazia());
- /* sub-árvore 'i' */ ARVB* a[2] = arv_cria('h',arv_criavazia(),arv_criavazia());
- /* sub-árvore 'g' */ ARVB* a[3] = arv_cria('g',a[1],a[2]);
- /* sub-árvore 'd' */ ARVB* a[4] = arv_cria('d',arv_criavazia(),arv_criavazia());
- /* sub-árvore 'b' */ ARVB* a[5] = arv_cria('b',a[3],a[4]);
- /* sub-árvore 'e' */ ARVB* a[6] = arv_cria('e',arv_criavazia(),arv_criavazia());
- /* sub-árvore 'f' */ ARVB* a[7] = arv_cria('f',arv_criavazia(),arv_criavazia());
- /* sub-árvore 'c' */ ARVB* a[8]= arv_cria('c',a[6],a[7]);
- /* árvore 'a' */ ARVB* a[9] = arv_cria('a',a5,a8 );
- int opcao = 1;
- while (opcao != 5) {
- printf("\n\t\t\t----- ARVORE BINARIA ------\n\n");
- printf("\n\t\t----- MENU PRINCIPAL ----- \n\n");
- printf("1 - Cadastrar numero.\n");
- printf("2 - Pesquisar numero.\n");
- printf("3 - Remover numero.\n");
- printf("4 - Listar cadastros.\n");
- printf("5 - Sair.\n");
- printf("\nDigite a opcao desejada: ");
- scanf("%d",&opcao);
- switch(opcao) {
- case 1 : {
- char num[8];
- bool a = false;
- printf("\n\t\t\t----- ARVORE BINARIA ------\n\n");
- printf("\n\t----- CADASTRO DE NUMEROS ----- \n\n");
- printf("Informe o numero da conta: ");
- gets(num);
- while(arv_pertence(a[], atoi(num)))
- if(strcmp(a[i].numero),num) == 1) {
- a = true;
- } else {
- a[i]
- }
- }
- if(a == false) {
- cadastrar(num);
- } else {
- printf("\nNumero ja cadastrado.");
- }
- fflush(stdin);
- break;
- }
- for(int i = 0; i < 3; i++) {
- printf(cliente[i].nome);
- }
- }
- }
- return 0;
- }
- ARVB* arv_criavazia () {
- return null;
- }
- ARVB* arv_cria (int num, char nome1[50], char email1[50], int RG1, ARVB* e, ARVB* d);
- {
- ARVB* p = (ARVB*)malloc(sizeof(ARVB));
- if(p == NULL)
- exit(1);
- p -> numero = num;
- printf("Nome: ");
- gets(cliente[i].nome);
- printf("Email: ");
- gets(cliente[i].email);
- p -> nome = nome1;
- p -> email = email1;
- p -> RG = RG1;
- p -> esq = sae;
- p -> dir = sad;
- return p;
- }
- ARVB* arv_libera (ARVB* a) {
- if (!arv_vazia(a)){
- arv_libera(a -> esq); /* libera sae */
- arv_libera(a -> dir); /* libera sad */
- free(a); /* libera raiz */
- }
- return NULL;
- }
- int arv_vazia (ARVB* a) {
- return a == NULL;
- }
- int arv_pertence (ARVB* a, int num) {
- if (arv_vazia(a))
- return 0;
- else
- return a -> atoi(numero) == num || arv_pertence(a -> esq,num) || arv_pertence(a -> dir,num);
- }
- void arv_imprime (ARVB* a) {
- if (!arv_vazia(a)){
- printf("%d ",a -> numero); /* mostra raiz */
- arv_imprime(a -> esq); /* mostra sae */
- arv_imprime(a -> dir); /* mostra sad */
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement