์ฐ๊ฒฐ ๋ฆฌ์คํธ
-
- [C] ์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ(Doubly Linked List)
์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ(Doubly Linked List) ์์ฉ ํ๋ก๊ทธ๋จ์์์ ํน์ ๋ ธ๋์์ ์๋ฐฉํฅ์ผ๋ก ์์ ๋กญ๊ฒ ์์ง์ผ ์ ์๋ ๋ฆฌ์คํธ ๊ตฌ์กฐ ํ๋์ ๋ ธ๋๊ฐ ์ ํ ๋ ธ๋์ ํ์ ๋ ธ๋์ ๋ํ ๋ ๊ฐ์ ๋งํฌ๋ฅผ ๊ฐ์ง๋ ๋ฆฌ์คํธ ๋งํฌ๊ฐ ์๋ฐฉํฅ์ด๋ฏ๋ก ์๋ฐฉํฅ์ผ๋ก ๊ฒ์์ด ๊ฐ๋ฅํด์ง๋ค. ๊ณต๊ฐ์ ๋ง์ด ์ฐจ์งํ๊ณ ์ฝ๋๊ฐ ๋ณต์กํด์ง๋ค๋ ๋จ์ ์ด ์๋ค. ์ค์ ์์ฉ์์๋ ์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ์ ์ํ ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ฅผ ํผํฉํ ํํ๊ฐ ๋ง์ด ์ฌ์ฉ๋๋ค. ํค๋ ๋ ธ๋(Head Node)๋ผ๋ ํน๋ณํ ๋ ธ๋๋ฅผ ์ถ๊ฐํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค. ํค๋ ๋ ธ๋๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ์์ง ์์ ํน๋ณํ ๋ ธ๋๋ฅผ ์๋ฏธํ๋ค. ํค๋ ํฌ์ธํฐ : ๋ฆฌ์คํธ์ ์ฒซ ๋ฒ์งธ ๋ ธ๋๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ ํค๋ ๋ ธ๋๊ฐ ์กด์ฌํ๋ฉด ์ฝ์ , ์ญ์ ์๊ณ ๋ฆฌ์ฆ์ด ๊ฐํธํด์ง๋ค. ์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ์์์ ๋ ธ๋๋ 3๊ฐ์ ํ๋(์ผ์ชฝ ๋งํฌ ํ๋,..
2022.07.12 -
- [C] ์ํ ์ฐ๊ฒฐ ๋ฆฌ์คํธ(Circular Linked List)
์ํ ์ฐ๊ฒฐ ๋ฆฌ์คํธ(Circular Linked List) ๋ฆฌ์คํธ์ ๋ง์ง๋ง ๋ ธ๋์ ๋งํฌ๊ฐ ์ฒซ ๋ฒ์งธ ๋ ธ๋๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ฆฌ์คํธ ๋ง์ง๋ง ๋ ธ๋์ ๋งํฌ ํ๋๊ฐ NULL์ด ์๋ ์ฒซ ๋ฒ์งธ ๋ ธ๋ ์ฃผ์๊ฐ ๋๋ ๋ฆฌ์คํธ. ํ ๋ ธ๋์์ ๋ค๋ฅธ ๋ชจ๋ ๋ ธ๋๋ก์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค๋ ์ฅ์ ์ด ์๋ค. ๋ ธ๋์ ์ฝ์ ๊ณผ ์ญ์ ๊ฐ ๋จ์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ณด๋ค๋ ์ฉ์ดํด์ง๋ค. ์ญ์ ๋ ์ฝ์ ์์๋ ํญ์ ์ ํ ๋ ธ๋์ ํฌ์ธํฐ๊ฐ ํ์ํ๋ค. ๋ฆฌ์คํธ์ ๋์ ๋ ธ๋๋ฅผ ์ฝ์ ํ๋ ์ฐ์ฐ์ด ๋จ์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ณด๋ค ํจ์จ์ ์ผ ์ ์๋ค. ์ฝ๋ #include #include typedef int element; typedef struct ListNode { element data; struct ListNode *link; } ListNode; void error(char *message) ..
2022.07.12 -
- [C] ๋จ์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ(Singly Linked List)
๋จ์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ(Singly Linked List) ๋จ์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ ๋ ธ๋๋ค์ด ํ๋์ ๋งํฌ ํ๋๋ฅผ ๊ฐ์ง๋ฉฐ ์ด ๋งํฌ ํ๋๋ฅผ ์ด์ฉํ์ฌ ๋ชจ๋ ๋ ธ๋๋ค์ด ์ฐ๊ฒฐ๋์ด ์๋ค. ๋ง์ง๋ง ๋ ธ๋์ ๋งํฌ ํ๋ ๊ฐ์ NULL์ด๋ค. ์ฒซ ๋ฒ์งธ ๋ ธ๋๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ(ํค๋ ํฌ์ธํฐ) ๊ฐ๋ง ์๊ณ ์์ผ๋ฉด ์ฐ๊ฒฐ ๋ฆฌ์คํธ ์์ ๋ชจ๋ ๋ ธ๋์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค. ํ๋์ ๋จ์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ ์ฒซ ๋ฒ์งธ ๋ ธ๋๋ฅผ ๊ฐ๋ฆฌํค๋ ํ๋์ ํฌ์ธํฐ๋ง ์์ผ๋ฉด ์ถฉ๋ถํ๋ค. ํค๋ ํฌ์ธํฐ(Head Pointer) : ์ฒซ ๋ฒ์งธ ๋ ธ๋๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ ์ฝ๋ #include #include typedef int element; typedef struct ListNode { element data; struct ListNode *link; } ListNode; void error(c..
2022.07.12 -
- [Python] ์ํ ์ฐ๊ฒฐ ๋ฆฌ์คํธ(Circular Linked List)
์ํ ์ฐ๊ฒฐ ๋ฆฌ์คํธ(Circular Linked List) ์ํ ์ฐ๊ฒฐ ๋ฆฌ์คํธ์ ๊ฐ๋ ๋จ์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ(Singly Linked List) ๋๊น์ง ๋ฐฉ๋ฌธํ ํ์๋ ๋ ์ด์ ๋ฐฉ๋ฌธํ ๊ณณ์ด ์์ด ์ข ๋ฃ๋๋ฏ๋ก ๋ค์ ๋ฐฉ๋ฌธํ๋ ค๋ฉด ํค๋(head)๋ถํฐ ์ฌ์์ํด์ผ ํ๋ค. ์ํ ์ฐ๊ฒฐ ๋ฆฌ์คํธ(Circular Linked List)๋ ๋จ์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ์ ๋ง์ง๋ง ๋ ธ๋๊ฐ ๋ค์ ์ฒซ ๋ฒ์งธ ๋ ธ๋๋ฅผ ๊ฐ๋ฆฌํค๋๋ก ์ค์ ๋์ด ๋ฆฌ์คํธ ํํ๊ฐ ์(Circle) ํํ๋ก ๊ตฌ์ฑ๋๋ค. ์์ ์์น์ ๋ค์ ์์น๊ฐ ๊ณ์ ์ด์ด์ง ํ, ๋ง์ง๋ง์ ๋ค์ ์์ ์์น๋ก ๋์์ค๋ ํํ ์ํ ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ ๋จ์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ์ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ฐ์ดํฐ ์ฝ์ ์์ ์ค๋ฒํค๋๊ฐ ๋ฐ์ํ์ง ์๋๋ค. ์ํ ์ฐ๊ฒฐ ๋ฆฌ์คํธ์ ์๋ฆฌ ์ํ ์ฐ๊ฒฐ ๋ฆฌ์คํธ์ ์๋ฆฌ ๋ฐ ๊ตฌ์กฐ๋ ๋จ์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ์ ๋ง์ ๋ถ๋ถ์ด ๋น์ทํ๋ค...
2022.06.22 -
- [Python] ์ ํ ์ฐ๊ฒฐ ๋ฆฌ์คํธ(Linear Linked List)
์ ํ ๋ฆฌ์คํธ(Linear Linked List) ์ ํ ๋ฆฌ์คํธ์ ๊ธฐ๋ณธ ๊ฐ๋ ๋ฐ์ดํฐ๋ฅผ ์ผ์ ํ ์์๋ก ๋์ดํ ๊ตฌ์กฐ ์์ฐจ ๋ฆฌ์คํธ(Ordered List)๋ผ๊ณ ๋ ํ๋ค. ์ ๋ ฅ ์์๋๋ก ์ ์ฅํ๋ ๋ฐ์ดํฐ์ ํด๋นํ๋ค. ์ ํ ๋ฆฌ์คํธ๋ ๋ค์ํ ๋ฐฉ๋ฒ์ผ๋ก ๊ตฌํํ ์ ์์ง๋ง, ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ์ ๋ฐฐ์ด ์ ์ด์ฉํ๋ ๊ฒ์ด๋ค. ์ ํ ๋ฆฌ์คํธ๋ ๋ฉ๋ชจ๋ฆฌ์์๋ ์ฐจ๋ก๋ก ์ ์ฅ๋๋ค. ์๋ฆฌ ๋ฐ์ดํฐ ์ฝ์ 1๋จ๊ณ : ๋งจ ๋์ ๋น์นธ์ ํ๋ณดํ๋ค. 2๋จ๊ณ : ์ฝ์ ํ๊ณ ์ ํ๋ ๊ณต๊ฐ์ ๋น์นธ์ด ์์ผ๋ฏ๋ก, ์ฝ์ ํ๊ณ ์ ํ๋ ๊ณต๊ฐ ๋ค์ ์๋ ์์๋ค์ ํ์นธ์ฉ ๋ค๋ก ์ฎ๊ธด๋ค. 3๋จ๊ณ : ๋น์๋ฆฌ์ ์์๋ฅผ ์ฝ์ ํ๋ค. ๋ฐ์ดํฐ ์ญ์ ์ํ๋ ์์๊ฐ ์ญ์ ๋ ํ ๋น์นธ์ ๊ทธ๋๋ก ๋์ง ์๊ณ ๋ค์ ์์๋ค์ ์์ผ๋ก ํ์นธ์ฉ ์ด๋์ํจ๋ค. ์ ํ ๋ฆฌ์คํธ์ ๊ตฌํ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ๋ ๋ฐ์ดํฐ๊ฐ ๊ฐ๋ณ์ ์ผ๋ก..
2022.06.22