Guest User

Untitled

a guest
Jul 16th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.44 KB | None | 0 0
  1. typedef struct no {
  2. int conteudo;
  3. struct no *esq, *dir;
  4. } Arvore;
  5.  
  6. Arvore *insereNaArvoreBinaria(Arvore *raiz, Arvore *r, int conteudo) {
  7. if (!r) {
  8. r = (Arvore *)malloc(sizeof(Arvore));
  9. if (!r) {
  10. printf("\n\nSEM MEMORIA!! Programa finalizado!\n");
  11. exit(0);
  12. }
  13. r->esq = NULL;
  14. r->dir = NULL;
  15. r->conteudo = conteudo;
  16.  
  17. if (!raiz) {
  18. printf("\nna primeira insercao\n");
  19. return r; //primeira entrada
  20. }
  21. if (conteudo == raiz->conteudo)
  22. printf("\nnumero jah cadastrado\n");
  23. else if (conteudo < raiz->conteudo) raiz->esq = r;
  24. else raiz->dir = r;
  25.  
  26. return r;
  27. }
  28. if (conteudo < r->conteudo) {
  29. printf("\nfui pra esquerda\n");
  30. insereNaArvoreBinaria(r, r->esq, conteudo);
  31. }
  32. else {
  33. printf("\nfui pra direita\n");
  34. insereNaArvoreBinaria(r, r->dir, conteudo);
  35. }
  36. }
  37.  
  38. int main(){
  39. Arvore *arvore;
  40. int conteudo;
  41. char op;
  42.  
  43. arvore = NULL;
  44. do{
  45. system("clear");
  46. printf("::: Menu \n");
  47. printf("1 - Inserir");
  48. switch(op){
  49. case'1':
  50. printf("\nInserindo na arvore...\n");
  51. printf("\nDigite um numero: ");
  52. scanf("%d", &conteudo);
  53. if(!arvore)
  54. arvore = insereNaArvoreBinaria(arvore, arvore, conteudo);
  55. else insereNaArvoreBinaria(arvore, arvore, conteudo);
  56. getchar();
  57. break;
  58. case '8':
  59. break;
  60. default:
  61. printf("\nOpcao invalida!\n\n");
  62. getchar();
  63. }while(op != '8');
  64. }
  65. }
Add Comment
Please, Sign In to add comment