[Libft][C] ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ(linked list) ํ•จ์ˆ˜ ๊ตฌํ˜„ (lstadd_front, lstdelone, lstmap)

2025. 6. 2. 18:02ยท๐Ÿƒ‍โ™€๏ธ Activities/42 Cursus

lstadd_front

void    ft_lstadd_front(t_list **lst, t_list *new)
  • lst: ๋ฆฌ์ŠคํŠธ์˜ ์ฒซ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ํฌ์ธํ„ฐ์˜ ์ฃผ์†Œ (ํ—ค๋“œ ํฌ์ธํ„ฐ์˜ ์ฃผ์†Œ)
  • new: ์•ž์— ์ถ”๊ฐ€ํ•  ์ƒˆ๋กœ์šด ๋…ธ๋“œ
  1. new->next = *lst;: ๊ธฐ์กด ์ฒซ ๋…ธ๋“œ๋ฅผ new->next์— ์—ฐ๊ฒฐํ•œ๋‹ค.
  2. *lst = new;: new๊ฐ€ ๋ฆฌ์ŠคํŠธ์˜ ์ฒซ ๋…ธ๋“œ๊ฐ€ ๋˜๋„๋ก lst๋ฅผ ๊ฐฑ์‹ ํ•œ๋‹ค.

lst == NULL๊ณผ *lst == NULL์˜ ์ฐจ์ด

  • lst == NULL: ๋ฆฌ์ŠคํŠธ์˜ ์‹œ์ž‘ ์ฃผ์†Œ๊ฐ€ ์—†๋‹ค. ์ฆ‰, ๋ฆฌ์ŠคํŠธ ์ž์ฒด๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋œป์ด๋‹ค.
  • *lst == NULL: ๋ฆฌ์ŠคํŠธ๋Š” ์กด์žฌํ•˜์ง€๋งŒ, ์ฒซ ๋…ธ๋“œ(head)๊ฐ€ ์—†๋‹ค. ์ฆ‰, ๋น„์–ด ์žˆ๋Š” ๋ฆฌ์ŠคํŠธ๋ผ๋Š” ๋œป์ด๋‹ค.

 

lstdelone

void    ft_lstdelone(t_list *lst, void (*del)(void *))
  • lst๊ฐ€ NULL์ด๋ฉด ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋น„์–ด ์žˆ๋‹ค๋Š” ๋œป์ด๋‹ค. ์ด๋•Œ๋Š” ์‚ญ์ œํ•  ๋ฆฌ์ŠคํŠธ๊ฐ€ ์—†๋Š” ๊ฒƒ์ด๋ฏ€๋กœ return;
  • del()ํ•จ์ˆ˜๊ฐ€ NULL์ด๋ฉด lst์˜ content๋ฅผ freeํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜์ง€ ๋ชปํ•˜๋ฏ€๋กœ ๋ฐ”๋กœ return;
  • void (*del)(void *) : lst์˜ content ๋ฉค๋ฒ„๋ณ€์ˆ˜๋ฅผ freeํ•˜๊ธฐ ์œ„ํ•œ ํ•จ์ˆ˜ ํฌ์ธํ„ฐ

 

lstmap

t_list    *ft_lstmap(t_list *lst, void *(*f)(void *), void(*del)(void *))
  1. ๋ฆฌ์ŠคํŠธ๊ฐ€ ๋น„์—ˆ๊ฑฐ๋‚˜ f, del ํ•จ์ˆ˜๊ฐ€ NULL์ด๋ฉด NULL ๋ฆฌํ„ด
  2. ์ƒˆ๋กœ์šด ๋ฆฌ์ŠคํŠธ ret๋ฅผ NULL ์ดˆ๊ธฐํ™”
  3. ์›๋ณธ ๋ฆฌ์ŠคํŠธ lst๋ฅผ ์ˆœํšŒ:
    • f(lst->content)๋กœ ์ƒˆ content ์ƒ์„ฑ
    • ft_lstnew(new_content)๋กœ ์ƒˆ ๋…ธ๋“œ ์ƒ์„ฑ
    • ์‹คํŒจ ์‹œ lstclear ํ›„ ๋ฆฌํ„ด
    • ft_lstadd_back์œผ๋กœ ์ƒˆ๋กœ์šด ๋ฆฌ์ŠคํŠธ์— ์ถ”๊ฐ€
  4. ret ๋ฆฌํ„ด

'๐Ÿƒโ€โ™€๏ธ Activities > 42 Cursus' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[ft_printf][C] printf ํฌ๋งท ์ถœ๋ ฅ ์˜ˆ์‹œ (%p, %u, %x, %X)  (0) 2025.06.02
[ft_printf][C] ๊ฐ€๋ณ€ ์ธ์ž ํ•จ์ˆ˜  (0) 2025.06.02
[Libft][C] string ํ•จ์ˆ˜ ๊ตฌํ˜„ (strlcpy / strlcat / strchr / strnstr / substr / strtrim / strmapi / striteri)  (0) 2025.06.02
[Libft][C] memory ํ•จ์ˆ˜ ๊ตฌํ˜„ (memset / memmove / memchr / bzero / calloc)  (0) 2025.06.02
[C] void & void *ํƒ€์ž… / ํฌ์ธํ„ฐ ์—ฐ์‚ฐ  (0) 2025.06.02
'๐Ÿƒ‍โ™€๏ธ Activities/42 Cursus' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [ft_printf][C] printf ํฌ๋งท ์ถœ๋ ฅ ์˜ˆ์‹œ (%p, %u, %x, %X)
  • [ft_printf][C] ๊ฐ€๋ณ€ ์ธ์ž ํ•จ์ˆ˜
  • [Libft][C] string ํ•จ์ˆ˜ ๊ตฌํ˜„ (strlcpy / strlcat / strchr / strnstr / substr / strtrim / strmapi / striteri)
  • [Libft][C] memory ํ•จ์ˆ˜ ๊ตฌํ˜„ (memset / memmove / memchr / bzero / calloc)
0=2.
0=2.
  • 0=2.
    0=2
    0=2.
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (65)
      • ๐Ÿ“‚ Project (2)
        • Paint the City (2)
      • ๐Ÿ’ญ Problem Solving (28)
        • C++ (28)
      • ๐Ÿ“ Study (1)
        • React (1)
      • ๐Ÿ’ป CS (2)
        • ๐Ÿ“˜ Dev Book (2)
      • ๐Ÿƒ‍โ™€๏ธ Activities (32)
        • Web Front-End Basic Study (6)
        • 42 Cursus (26)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
    • ๊ธ€์“ฐ๊ธฐ
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ๋ฐฑํŠธ๋ž˜ํ‚น
    .h
    unity
    ๊ตฌํ˜„
    CSS
    github
    makefile
    BFS
    ๊ทธ๋ฆฌ๋”” ์•Œ๊ณ ๋ฆฌ์ฆ˜
    git
    42๊ฒฝ์‚ฐ
    C
    JavaScript
    CS
    ๋งต
    dynamic programming
    ์ •๋ ฌ
    swea
    ๋ฐฑ์ค€
    La Piscine
    HTML
    ๋ธŒ๋ฃจํŠธํฌ์Šค
    knapsack
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    react
    VR
    ์‹œ๋ฎฌ๋ ˆ์ด์…˜
    dfs
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
0=2.
[Libft][C] ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ(linked list) ํ•จ์ˆ˜ ๊ตฌํ˜„ (lstadd_front, lstdelone, lstmap)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”