* 인자로 받은 linked list의 길이를 구하기 위한 함수
연결 리스트는 배열과 같은 선형 자료구조
로, 하단의 사진과 같이 노드들이 메모리 상에 연속적으로 저장되어 있지 않고 포인터로 연결
되어 있는 리스트이다.
링크드 리스트의 제일 첫 노드를 가리키는 포인터가 있다.(하단의 사진에서는 head 변수)
각 노드들은 value를 저장하는 data
변수와 다음 노드의 주소값을 저장하는 포인터 변수 next
로 구성된다.
lst가 NULL이면 리스트 자체가 존재하지 않는다는 뜻이다.
*lst는 lst의 첫번째 주소, head를 의미하므로 리스트 내에 노드가 존재하지 않는다는 뜻이다.
인스턴스
가 노드이며, t_list 구조체는 아래와 같다.typedef struct s_list
{
void *content;
struct s_list *next;
} t_list;
lst
이며, 이 링크드 리스트의 길이를 구해 반환해야 한다.void ft_lstsize(t_list *lst)
t_list *lst : t_list 포인터. 제일 처음엔 연결 리스트의 제일 첫번째 노드를 가리킴
#include "libft.h"
int ft_lstsize(t_list *lst)
{
int size;
size = 0;
while (lst != NULL)
{
size++;
lst = lst->next;
}
return (size);//lst가 NULL이면 0을 리턴하게 된다.
}
(1) 연결 리스트의 크기를 저장할 int형 변수 size 선언
(2) lst가 NULL이 아닐 때까지 size++, lst에 lst의 next 저장.
(3) size 반환