Guest User

Untitled

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