728x90
반응형
이번 함수들은 구조체(연결 리스트)와 관련된 함수들이다.
연결 리스트의 형식은 아래와 같다.
typedef struct s_list
{
void *content;
struct s_list *next;
} t_list;
ft_lstadd_back: 연결 리스트의 맨 뒤에 새로운 요소를 추가해주는 함수
void ft_lstadd_back(t_list **lst, t_list *new)
{
t_list *lst2;
lst2 = *lst;
if (!(*lst))
*lst = new;
else
{
while (lst2->next)
lst2 = lst2->next;
lst2->next = new;
}
}
ft_lstadd_front: 연결 리스트의 맨 앞에 새로운 요소를 추가해주는 함수
void ft_lstadd_front(t_list **lst, t_list *new)
{
new->next = *lst;
*lst = new;
}
ft_lstclear: 연결 리스트를 초기화해주는 함수(삭제, 메모리 해제)
void ft_lstclear(t_list **lst, void (*del)(void *))
{
t_list *lst2;
lst2 = *lst;
if (lst || *lst)
{
while (*lst)
{
*lst = lst2->next;
del(lst2->content);
free(lst2);
lst2 = *lst;
}
}
}
ft_lstdelone: 연결 리스트의 content를 삭제하고 메모리를 해제해주는 함수
void ft_lstdelone(t_list *lst, void (*del)(void *))
{
if (lst)
{
del(lst->content);
free(lst);
}
}
ft_lstiter: 연결 리스트의 모든 content에 함수 f를 적용해주는 함수
void ft_lstiter(t_list *lst, void (*f)(void *))
{
while (lst)
{
f(lst->content);
lst = lst->next;
}
}
728x90
반응형