티스토리 뷰

728x90
반응형

틀린 내용이 있다면 댓글로 알려주세요! 감사합니다 :)

💡 lstnew 에 대하여

 

struct   s_list

{

  void      *content;

  struct s_list  *next;

}          t_list;

t_list란 s_list의 구조체이다.

Prototype

t_list        *ft_lstnew(void *content);
  • content : s_list의 content 포인터

 

Return Value

  • 새로 만든 list의 포인터를 반환한다.

 

lstnew 함수의 구현

t_list        *ft_lstnew(void *content)
{
    t_list *result;

    result = (t_list *)malloc(sizeof(t_list));
    if (result)
    {
        result->content = content;
        result->next = NULL;
    }
    return (result);
}



728x90



💡 lst_add_front에 대하여

 

Prototype

void    ft_lstadd_front(t_list **lst, t_list *new)
  • list : list들의 포인터

  • new : 앞에 연결할 구조체의 주소

 

Return Value

  • 없다

 

lst_add_front 함수의 구현

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



💡lst_add_back 에 대하여

 

환경

 

Prototype

void    ft_lstadd_back(t_list **lst, t_list *new);
  • list : list들의 포인터
  • new : 앞에 연결할 구조체의 주소

 

Return Value

  • 없음

 

lst_add_back 함수의 구현

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

    if (*lst == NULL)
    {
        *lst = new;
        return ;
    }
    begin = *lst;
    while (begin->next)
        begin = begin->next;
    begin->next = new;
}



💡 lst_size 에 대하여

 

환경

 

Prototype

int        ft_lstsize(t_list *lst);
  • n : 출력할 정수.

  • fd : 쓰여질 파일디스크립터.

 

Return Value

  • lst의 size를 return한다.

 

lst_size함수의 구현

#include <stdlib.h> //malloc을 쓰기위한 헤더
int        ft_lstsize(t_list *lst)
{
    int            i;
    t_list        *temp;

    i = 0;
    temp = lst;
    if (!lst)
        return (0);
    while (temp->next)
    {
        i++;
        temp = temp->next;
    }
    if (temp->next == NULL)
        i++;
    return (i);
}



728x90
반응형
댓글