• Matéria: Lógica
  • Autor: lucasyobhpaqwak
  • Perguntado 7 anos atrás

atividade 3 - dados I

QUESTÃO 6
A seguinte função recursiva imprime o conteúdo de uma lista encadeada “le”:



void imprime (celula *le) {
if (le != NULL) {
printf ("%d\n", le->conteudo);
imprime (le->prox);
}
}
Assinale a alternativa que apresenta uma versão iterativa:

Alternativas
Alternativa 1:
void imprime (celula *le) {
celula *p;
for (p = le; p != NULL; p = p->prox)
printf ("%d\n", p->conteudo);
}

Alternativa 2:
void imprime() {
int p;
printf("[ ");
for (p = 0; p < tamanho; p++) {
printf("%d ", le.conteudo[p]);
}
printf("]\n\n");
}

Alternativa 3:
void imprime(celula *le){
while(le->prox != NULL)
le = le->prox;
le->prox = (celula) malloc(sizeof(cel));
le = le->prox;
printf("%d",le->conteudo);
lista->proximo = NULL;
}

Alternativa 4:
void imprime(){
if (le.fim == tamanho) {
printf("\nA fila está cheia, volte outro dia!\n\n");
system("pause");
} else{
printf("\n%d", &le.conteudo[le.fim]);
le.fim++;
}
}

Alternativa 5:
void imprime(celula *le){
printf("%d",&le.conteudo);
while((le->conteudo != conteudo) ){
if (le->prox == NULL){
break;
}
atual = le;
le = le->prox;
}
if (le->conteudo == conteudo){
atual->prox = le->prox;
}
}

Respostas

respondido por: elton123456
0

Resposta:

void imprime (celula *le) {

  celula *p;

  for (p = le; p != NULL; p = p->prox)

     printf ("%d\n", p->conteudo);

}

Explicação:

Perguntas similares