Arvore multidirecional

1010 palavras 5 páginas
#include
#include
#include
#define n 4

/*
Geovane Vieira Gomes
Matricula: 200924461
Disciplina: Estrutura de Dados II
Compilador DevC++
Universidade Federal de Roraima – UFRR
*/

struct no {

int chave[n-1]; struct no *pai; struct no *filhos[n]; }; typedef struct no No;

static int nchaves;

int informarValor() { int num; printf("Informe o numero: "); scanf("%d", &num); return num;
}

No* gerano (){ int i; No* arvore = (No*)malloc(sizeof(No)); if (arvore == NULL){ printf ("Nao foi possivel alocar um no'!"); return NULL; } else { arvore->pai = NULL; for(i = 0; i < nchaves; i++) { arvore->chave[i] = 0; } for(i = 0; i < (nchaves+1); i++) { arvore->filhos[i] = NULL; } } return arvore;
}
int busca(int valor, No *arvore) { int i = 0; if(arvore == NULL) return 0; for(i = 0; i < nchaves; i++){ if(valor == arvore->chave[i]) { return 1; } else if(valorchave[i]) { return busca(valor,arvore->filhos[i]); } else { if(i == (nchaves-1)) { //Se chegou no final do vetor return busca(valor, arvore->filhos[i+1]); } } } return 0;
}
void desenharNo(int valor, int espaco) { int i; for (i = 0; i < espaco; i++) printf(" "); printf("%d\n", valor);
}
void desenharArvore(No *arvore, int espaco) { int i; for(i = 0; i < nchaves; i++) { if (arvore == NULL) { desenharNo(-1, espaco); return; } desenharNo(arvore->chave[i], espaco); desenharArvore(arvore->filhos[i], espaco+1); if(i == (nchaves-1)) desenharArvore(arvore -> filhos[i+1], espaco+1); }
}

int verificaRaiz(No *raiz) { if(raiz != NULL) { return 1; } else { printf("Raiz vazia!"); return 0; }
}

No* inserir(int valor, No *arvore) { if(arvore == NULL) { arvore = gerano(); arvore->chave[0] = valor; return arvore; }

Relacionados

  • 888565856585
    7672 palavras | 31 páginas
  • A2 TADS4 Estrutura De Dados Teleaula 7 Tema 7 Impressao
    1814 palavras | 8 páginas
  • qualidade
    1876 palavras | 8 páginas
  • Arvores Rubro Negras
    635 palavras | 3 páginas
  • analise cromossomo
    2987 palavras | 12 páginas
  • engenharia
    2185 palavras | 9 páginas
  • Algoritmos - Árvores Binárias
    11580 palavras | 47 páginas
  • Lista de Exercico Em Arvores Binarias
    1392 palavras | 6 páginas
  • As 7 ferramentas da qualidade
    1229 palavras | 5 páginas
  • atividade colaborativa
    1157 palavras | 5 páginas