๐ ๊ณต๋ถํ๋ ์ง์ง์ํ์นด๋ ์ฒ์์ด์ง?
[์๊ณ ๋ฆฌ์ฆ ์ํ ํ๋ฐ์ง ๋๋ฐ์ง๐พ] ์ฐ๊ฒฐ๋ฆฌ์คํธ (Linked List) ๋ณธ๋ฌธ
[์๊ณ ๋ฆฌ์ฆ ์ํ ํ๋ฐ์ง ๋๋ฐ์ง๐พ] ์ฐ๊ฒฐ๋ฆฌ์คํธ (Linked List)
์ง์ง์ํ์นด 2023. 6. 26. 12:26<๋ณธ ๋ธ๋ก๊ทธ๋ ์ฝ๋ฉ๋ฌธ codingmoon ๋์ ์ ํ๋ธ๋ฅผ ์ฐธ๊ณ ํด์ ๊ณต๋ถํ๋ฉฐ ์์ฑํ์์ต๋๋ค :-)>
=> ๋น ์ค(Big-O)ํ๊ธฐ๋ฒ ์ฝ๊ฒ ์ดํดํ๊ธฐ [10๋ถ ์ ๋ฆฌ]
๐ซง ์ฐ๊ฒฐ๋ฆฌ์คํธ (Linked List)
: ์ฐ์๋ ๋ ธ๋(Node) ์ ์ฐ๊ฒฐ์ฒด
๐พ ๋ ธ๋(Node)
: ์ฐ๊ฒฐ ๋ฆฌ์คํธ์์ ์ฌ์ฉ๋๋ ํ๋์ ๋ฐ์ดํฐ ๋ฉ์ด๋ฆฌ
: ๋ฐ์ดํฐ & ๋งํฌ, 2๊ฐ์ง์ ํ๋๋ฅผ ๋ด๊ณ ์๋ ๊ตฌ์กฐ
๐พ data
: ๋ ธ๋๊ฐ ๋ด๊ณ ์๋ ๋ฐ์ดํฐ/๊ฐ
๐พ next
: ๋งํฌ/ํฌ์ธํฐ ์ญํ , ๋ค์ ๋ ธ๋์ ์ฃผ์๋ฅผ ์ ์ฅ
(์๋ฐฉํฅ ์ฐ๊ฒฐ ๋ฆฌ์คํธ, prev ํฌ์ธํฐ (์ด์ ๋ ธ๋์ ์ฃผ์) ์ถ๊ฐ)
๐ซง ์ฐ๊ฒฐ๋ฆฌ์คํธ (Linked List) vs ๋ฐฐ์ด
์ฐ๊ฒฐ๋ฆฌ์คํธ (Linked List) | ๋ฐฐ์ด |
random access ๋ถ๊ฐ๋ฅ | random access ๊ฐ๋ฅ |
๋ฆฌ์คํธ์ n๋ฒ์งธ ๋ ธ๋ ๋ฐฉ๋ฌธ์ O(n) ์๊ฐ ์์ | ๋ฐฐ์ด์ n๋ฒ์งธ ์์ ๋ฐฉ๋ฌธ์ O(1) ์๊ฐ์ผ๋ก ๊ฐ๋ฅ |
๋ฐฐ์ด๋ณด๋ค ๋นจ๋ผ์ง ์ ์๋ ๋ ธ ์ฝ์ & ์ญ์ | ์์ ์ฝ์ & ์ญ์ ์ผ๋ฐ์ ์ผ๋ก O(n) ์๊ฐ ์์ |
๐ซง ์ฐ๊ฒฐ๋ฆฌ์คํธ (Linked List) ์ข ๋ฅ
- Singly Linked List (๋จ์ผ ์ฐ๊ฒฐ ๋ฆฌ์คํธ)
: ๋ค์ ๋ ธ๋์ ๋ํ point ๊ฐ์ง
: ํ์ชฝ ๋ฐฉํฅ์ผ๋ก ํ๋ฆ
- Doubly Linked List (์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ)
: ๋ค์ ๋ ธ๋ _ ์ด์ ๋ ธ๋์ pont ๊ฐ์ง
: ์๋ค๋ก ํ์ ๊ฐ๋ฅ
: ๋ ธ๋๋ง๋ค 2๊ฐ์ point ๊ฐ์ ธ์ ๋ณต์ก
- Circular Linked List (์ํ ์ฐ๊ฒฐ ๋ฆฌ์คํธ)
: ๋ง์ง๋ง์ด head ๋ฅผ ๊ฐ๋ฅดํด