Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 16th, 2012  |  syntax: C  |  size: 2.79 KB  |  hits: 15  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
This paste has a previous version, view the difference. Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. /*
  2. Baixe esse paste em https://sites.google.com/site/corretoressuman/home
  3.  
  4. La tem sempre a ultima versao
  5.  
  6. Mas como eu sou um cara legal, aqui esta a segunda versao
  7. */
  8.  
  9. /* COLOCAR AS ASSINATURAS DE METODO NO arvoreLetras.h */
  10.  
  11.    void imprimirSumanArvore(PontArvore a);
  12.    void imprimirSumanArvoreAux(PontNo subArvore,int letra,int array[], bool t);
  13.  
  14.  
  15. /*COLOCAR NO SWITCH DO PROFESSOR NO ARQUIVO usaArvore.c*/
  16.  
  17.    case 'x' : imprimirSumanArvore(&arvore); break;
  18.    case 'z' : printf("O metodo do Suman para imprimir:\n\n   Imprime os filhos da esquerda pra direita e os irmaos de cima pra baixo\n\nIMPORTANTE: Os registros com fimDePalavra==true ficam com letra MAIUSCULA\n");
  19.  
  20.  
  21. /*COLOCAR NO METODO help() DO PROFESSOR NO AQUIVO usaArvore.c*/
  22.  
  23.    printf("  x : usar o metodo SUMAN de impressao de arvores ( z : para ajuda nesse metodo)");
  24.  
  25.  
  26. /*COLOCAR EM QUALQUER LUGAR NO ARQUIVO arvoreLetras.c*/
  27.  
  28.  
  29. void imprimirSumanArvore(PontArvore a){
  30.     int b[a->tamMaiorPalavra];
  31.     int i;
  32.     for(i=0;i<a->tamMaiorPalavra;i++){
  33.         b[i] = 0;
  34.     }
  35.     printf("Maior Palavra tem %d letras ( ESSA PARTE DO CODIGO TEM QUE ESTAR FUNCIONANDO )\n\n",a->tamMaiorPalavra);
  36.  
  37.     imprimirSumanArvoreAux(a->raiz,0,b,false);
  38. }
  39. void imprimirSumanArvoreAux(PontNo subArvore,int letra,int array[],bool t){
  40.  
  41.     if(!subArvore){
  42.         printf("\n");
  43.         return;
  44.     } else {
  45.         printf("%c",transforma(subArvore->letra,subArvore->fimDePalavra));
  46.  
  47.         if(subArvore->filho){
  48.             printf("--");
  49.         }
  50.  
  51.         if(subArvore->prox){
  52.             array[letra] = 1;
  53.         } else {
  54.             array[letra] = 0;
  55.         }
  56.         PontNo pont;
  57.         if(t==true){
  58.             return;
  59.         }
  60.         pont = subArvore;
  61.  
  62.         while(pont){
  63.             imprimirSumanArvoreAux(pont->filho,letra+1,array,false);
  64.             if(pont->prox!=NULL){
  65.                 int i;
  66.                 for(i=0;i<letra+1;i++){
  67.                     if(array[i]==1){
  68.                         printf("%c  ",179);
  69.                     } else {
  70.                         printf("   ");
  71.                     }
  72.                 }
  73.                 printf("\n");
  74.                 for(i=0;i<letra;i++){
  75.                     if(array[i]==1){
  76.                         printf("%c  ",179);
  77.                     } else {
  78.                         printf("   ");
  79.                     }
  80.                 }
  81.                 imprimirSumanArvoreAux(pont->prox,letra,array,true);
  82.             }
  83.             pont = pont -> prox;
  84.         }
  85.     }
  86. }
  87.  
  88.  
  89.  
  90.  
  91. /*
  92. :::::::::::::::::::::IMPORTANTE:::::::::::::::::::::  
  93. Esse impressor, ao contrario do que eu fiz no EP1,
  94. tem que ser retirado antes de se fazer a entrega no
  95. COL, devido a assinatura do metodo no arvoreLetras.h,
  96. que precisa existir por causa da recursividade usada
  97. */