ft_lstadd_front

jaehlee·2025년 4월 27일

Libft

목록 보기
18/26

linked list 설명

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

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

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

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

1. ft_lstadd_front란?


새로운 노드(new)를 기존 연결리스트(lst)의 맨 앞에 추가하는 함수이다.
리스트의 첫 번째 요소를 새로 연결된 노드로 갱신한다.

2. 함수 프로토타입

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

3. 함수구현

#include "libft.h"

void	ft_lstadd_front(t_list **lst, t_list *new)
{
	if (new == NULL)
		return ;
	new->next = *lst;
	*lst = new;
}

작동방식

  1. new노드의 next포인터를 기존 리스트의 첫 번째 노드를 가리키게 한다.
  2. 리스트의 시작 포인터(*lst)를 new로 바꾼다.
  3. 새 노드가 리스트 맨 앞에 추가되고 기존 리스트가 뒤로 밀린다.

사용예시

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

	node1 = ft_lstnew("first");
	node2 = ft_lstnew("second");

	ft_lstadd_front(&list, node1); // 리스트: first
	ft_lstadd_front(&list, node2); // 리스트: second -> first

	printf("First node content: %s\n", (char *)list->content);          // "second"
	printf("Second node content: %s\n", (char *)list->next->content);    // "first"

	free(node1);
	free(node2);
	return (0);
}
profile
공부하는 개발자

0개의 댓글