Questão 3(a) e 3(b) da Prova 1

Questão 3(a) e 3(b) da Prova 1

por José Coelho de Pina -
Número de respostas: 0

ITEM 3(a)

Escreva uma função iterativa de nome contaCelulas que recebe uma apontador ini para uma lista encadeada sem cabeça e devolve o número de células da lista.
UMA SOLUÇÃO

int contaCelulas (Celula *ini) { int noCelulas = 0; while (ini != NULL) {
 noCelulas++; ini = ini->prox; } return noCelulas; }

ITEM 3(b)

Escreva uma função recursiva de nome contaCelulas que recebe uma apontador ini para uma lista encadeada sem cabeça e devolve o número de células da lista.
UMA SOLUÇÃO

int 
contaCelulas (Celula *ini) 
{ 
  if (ini == NULL) return 0; 
  return 1 + contaCelulas(ini->prox); 
}

A soluções usam a abreviatura Celula

   struct celula {
     int conteudo;
     struct celula *prox;
   }
   typedef struct celula Celula;