ft_lstadd_back

jaehlee·2025년 4월 27일

Libft

목록 보기
21/26

linked list 설명

배열(Array) & 연결리스트(Linked List)
해당 페이지에 설명해두었음.

ft_lstadd_back를 구현하기 위해 libft.h파일에

typedef struct s_list
{
	void			*content;
	struct s_list	*next;
}					t_list;

이 구조체를 추가해야한다.

1. ft_lstadd_back란?


새로운 노드(new)를 기존 연결리스트(lst)의 맨 뒤에 추가하는 함수이다.
빈 리스트일 경우 새 노드를 첫 번째 노드로 설정한다.

2. 함수 프로토타입

void	ft_lstadd_back(t_list **lst, t_list *new)

3. 함수구현

#include "libft.h"

void	ft_lstadd_back(t_list **lst, t_list *new)
{
	t_list	*res;

	res = *lst;
	if (*lst == NULL && new != NULL)
	{
		*lst = new;
		return ;
	}
	else if (lst == NULL || new == NULL)
		return ;
	while ((*lst)->next != NULL)
	{
		*lst = (*lst)->next;
	}
	(*lst)->next = new;
	*lst = res;
}

사용예시

#include "libft.h"
#include <stdio.h>

int main(void)
{
	t_list *list = NULL;
	t_list *node1;
	t_list *node2;
	t_list *node3;

	node1 = ft_lstnew("node1");
	node2 = ft_lstnew("node2");
	node3 = ft_lstnew("node3");

	ft_lstadd_back(&list, node1); // 리스트: node1
	ft_lstadd_back(&list, node2); // 리스트: node1 -> node2
	ft_lstadd_back(&list, node3); // 리스트: node1 -> node2 -> node3

	while (list)
	{
		printf("%s\n", (char *)list->content);
		list = list->next;
	}
	return (0);
}
profile
공부하는 개발자

0개의 댓글