Guest User

Untitled

a guest
Sep 25th, 2018
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.01 KB | None | 0 0
  1. N C1 X1 C2 X2 ... CN XN
  2.  
  3. Deve ser executado "Inserir Xi" -> Ci == 2:
  4. Deve ser executado "Remover Xi" -> Ci == 3:
  5. Deve ser executado "Maiores Xi" -> Ci == 4:
  6. Deve ser executado "Kth Xi" Xi é o argumento (operando) da operação i.
  7.  
  8. #include <stdio.h>
  9. #include <stdlib.h>
  10.  
  11. typedef struct arvore{
  12. int conteudo;
  13. struct arvore* dir;
  14. struct arvore* esq;
  15. } arv;
  16.  
  17. arv* criarvore(){
  18. return NULL;
  19. }
  20.  
  21. int vazia(arv* t){
  22. return t == NULL;
  23. }
  24.  
  25. void imprimearvore(arv* t){
  26. if(!vazia(t)){
  27. printf("%d ", t->conteudo);
  28. imprimearvore(t->esq);
  29. imprimearvore(t->dir);
  30. }}
  31.  
  32. int pertence(arv* t, int conteudo){
  33. if(vazia(t))
  34. return 0;
  35. return t->conteudo==conteudo || pertence(t->esq, conteudo) || pertence(t->dir, conteudo);
  36. }
  37.  
  38. void inserenaarvore(arv** t, int conteudo){
  39. if (pertence(t, conteudo))
  40.  
  41. if (*t == NULL){
  42. *t = (arv*)malloc(sizeof(arv));
  43. (*t)->esq = NULL;
  44. (*t)->dir = NULL;
  45. (*t)->conteudo = conteudo;
  46. } else{
  47. if(conteudo < (*t)->conteudo)
  48. inserenaarvore(&(*t)->esq, conteudo);
  49. if(conteudo > (*t)->conteudo)
  50. inserenaarvore(&(*t)->dir, conteudo);
  51. }
  52. }
  53.  
  54. int main(){
  55.  
  56. int num, T, i, j, N, Ci;
  57.  
  58. scanf("%d", &T);
  59. if (T<1 || T>100)
  60. return 0;
  61. else{
  62. arv* t = criarvore();
  63. for( i=0; i<T; i++){
  64. scanf("%d", &N);
  65. if (N<1 || N>200000)
  66. return 0;
  67. else{
  68. for( j=0; j<N; j++){
  69. scanf("%d", &Ci)
  70.  
  71. switch(Ci){
  72. case 1:
  73. inserenaarvore(&t, num);
  74. break;
  75. case 2:
  76. remove;
  77. break;
  78. case 3:
  79. maiores;
  80. break;
  81. case 4:
  82. kesimo termo;
  83. default:
  84. return 0;
  85. }}}}}
  86.  
  87. free(t);
  88. return 0;
  89. }
Add Comment
Please, Sign In to add comment