[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Dúvida !!



Marcos Lemos writes:
 > Professor (ou outro membro da lista),
 > 
 > Não entendi a seguinte passagem do programa de ordenação topológica:
 > 
 > 	      ptr->id = el (j);
 > 	      el (j)->g_entr++;
 > 	      ptr->prox_suc = el (i)->topo_suc;
 > 	      el (i)->topo_suc = ptr;

Tenho a impressão de que voce esta lendo o codigo em C.  De fato, na versão C
não há comentários, mas em todas as outras versões há explicações.  Vale a
pena ler o código em PostScript, dvi, ou pdf.

Em último caso, você pode ler o programa em CWEB:

/********************************************************************/
@ Queremos agora registrar em nossa estrutura de dados que temos~$i\prec j$.  

@d el(k) (els+k-1)

@<Insira o par $(i,j)$ em nossa estrutura de dados@>={@+
  struct sucessor *ptr;
  ptr=(struct sucessor *)malloc(sizeof(struct sucessor));
  if (ptr==NULL) { /* faltou memória... */
    status=erro_na_alocacao_de_memoria;
    fprintf(stderr, "%s: Faltou memoria!\n", nome_do_prog);
    exit(status);
  }
  ptr->id=el(j);
  el(j)->g_entr++;  /* incrementamos o contador de arcos de entrada para |j| */
  ptr->prox_suc=el(i)->topo_suc;
  el(i)->topo_suc=ptr;
  /* inserimos o elemento |j| na lista de sucessores de |i| */
}
/********************************************************************/

Note que a versão C está lá só para a gente ver concretamente que o programa
em CWEB é usado para gerar um código C normal, que depois deve ser compilado
com algum compilador C.  

Boa sorte!  Yoshi

 > Pelo que percebi, ela parece estar armazenando em ptr o par de valores
 > digitados em cada uma das linhas do arquivo de entrada... Estou certo ?
 > Bem, gostaria de mais explicações sobre esta passagem...
 > 
 > Falou!!!
 > 
 > Lemos