ft_lstsize

Subject

Nome da função: ft_lstsize

Protótipo: int ft_lstsize(t_list *lst);

Parâmetros:

  • #1. O começo da lista.

Valor de retorno: Tamanho da lista.

Funções externas: Nenhuma.

Descrição: Contar o número de elementos da lista.

Rascunho

A função pede para contar quantos elementos têm na lista. Se fizéssemos um main assim:

int main() {
  
  t_list    *l;
  int tamanho;
    
  l = ft_lstnew(strdup("1"));
  l->next = ft_lstnew(strdup("2"));
  l->next->next = ft_lstnew(strdup("3"));

  tamanho = ft_lstsize(l);

  return 0;
}

O resultado seria:

Crio uma lista com 3 elementos
Enquanto a ‘aux’ não chega ao fim, ela vai avançando nos elementos e o ‘size’ aumentando
Quando ‘aux’ estiver valendo NULL, size estará valendo 3 e a contagem terminará
O valor de ‘size’ é retornado para ‘tamanho’ que é 3

Código

int	ft_lstsize(t_list *lst)
{
	int	size; //variável para armazenar o tamanho
	t_list	*aux; //lista auxiliar

	size = 0; //tamanho começa valendo 0
	aux = lst; //o endereço da aux passa ser o mesmo que lst
	while (aux != NULL) //enquanto a lista não chega ao fim
	{
		aux = aux->next; //avanço para o próximo elemento
		size++;          //e aumento 1 no tamanho
	}
	return (size); //retorno o tamanho
}

Deixe um comentário