1. ์ญ์ฌLinkedList
Java์๋ C++ ์ธ์ด์์ ์์๋ ๋ ๋ค๋ฅธ ์ปฌ๋ ์
ํด๋์ค Java๊ฐ ์์ต๋๋ค. ์ด๊ฒ์ LinkedList
"์ฐ๊ฒฐ๋ ๋ชฉ๋ก"์ ๊ตฌํํ๋ ํด๋์ค์
๋๋ค.
๊ฒ์ผ๋ก ๋ณด๊ธฐ์ a๋ LinkedList
์ ๋์ผํ๊ฒ ๋ณด์
๋๋ค ArrayList
. ํด๋์ค LinkedList
์๋ ํด๋์ค์ ๋์ผํ ๋ฉ์๋๊ฐ ๋ชจ๋ ์์ต๋๋ค ArrayList
. LinkedList
์์น์ ์ผ๋ก an ๋์ ํญ์ a๋ฅผ ์ฌ์ฉํ ์ ArrayList
์์ผ๋ฉฐ ๋ชจ๋ ๊ฒ์ด ์๋ํฉ๋๋ค.
๊ทธ๋ ๋ค๋ฉด ๋ค๋ฅธ ๋ชฉ๋ก ํด๋์ค๊ฐ ํ์ํ ์ด์ ๋ ๋ฌด์์ ๋๊น?
๋๋ต์ ํด๋์ค์ ๋ด๋ถ ๊ตฌ์กฐ์ ๊ด๋ จ์ด ์์ต๋๋ค LinkedList
. ๋ฐฐ์ด ๋์ ์ด์ค ์ฐ๊ฒฐ ๋ชฉ๋ก์ ์ฌ์ฉํฉ๋๋ค . ๊ทธ๊ฒ์ด ๋ฌด์์ธ์ง ์ ์ ํ์ ์ค๋ช
ํ๊ฒ ์ต๋๋ค.
ํด๋์ค LinkedList
์ ๋ค๋ฅธ ๋ด๋ถ ๊ตฌ์กฐ๋ก ์ธํด ๋ชฉ๋ก ์ค๊ฐ์ ์์๋ฅผ ์ฝ์
ํ๋ ๊ฒ์ด ๊ฐ์ฅ ๋น ๋ฆ
๋๋ค.
์ธํฐ๋ท์์ ์ข
์ข
ArrayList
๋ฐ LinkedList
ํด๋์ค์ ๋น๊ต๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
์์ | ๋ฐฉ๋ฒ | ๋ฐฐ์ด๋ชฉ๋ก | LinkedList |
---|---|---|---|
์์ ์ถ๊ฐ |
|
๋น ๋ฅธ | ๋งค์ฐ ๋น ๋ฆ |
์์ ์ฝ์ |
|
๋๋ฆฐ | ๋งค์ฐ ๋น ๋ฆ |
์์ ๊ฐ์ ธ์ค๊ธฐ |
|
๋งค์ฐ ๋น ๋ฆ | ๋๋ฆฐ |
์์ ์ค์ |
|
๋งค์ฐ ๋น ๋ฆ | ๋๋ฆฐ |
์์ ์ ๊ฑฐ |
|
๋๋ฆฐ | ๋งค์ฐ ๋น ๋ฆ |
๋ชจ๋ ๊ฒ์ด ์ถฉ๋ถํ ๋ช
ํํด ๋ณด์
๋๋ค. ๋ชฉ๋ก์ ์์๋ฅผ ์์ฃผ ์ฝ์
ํด์ผ ํ๋ ๊ฒฝ์ฐ LinkedList
; ๋๋ฌผ๋ค๋ฉด ArrayList๋ฅผ ์ฌ์ฉํ์ญ์์ค. ํ์ง๋ง ํ์ค์ ์กฐ๊ธ ๋ค๋ฆ
๋๋ค.
2. ์๋ฌด๋ ์ฌ์ฉํ์ง ์๋๋คLinkedList
์๋ฌด๋ ์ฌ์ฉํ์ง ์์ต๋๋ค LinkedList
.
์์
์ ์ ์์กฐ์ฐจ๋ LinkedList
์ต๊ทผ ํธ์ํ์ต๋๋ค. "์ค์ ๋ก ์ฌ์ฉํ๋ ์ฌ๋์ด ์์ต๋๊น LinkedList
? ๋ด๊ฐ ์ผ๊ณ ์ฌ์ฉํ์ง ์์ต๋๋ค."
๊ทธ๋์ ๊ฑฐ๋๊ฐ ๋ญ์ผ?
์ฒซ์งธ, ํด๋์ค ArrayList
๋ ์์๋ฅผ ๋ชฉ๋ก ์ค๊ฐ์ ๋งค์ฐ ๋น ๋ฅด๊ฒ ์ฝ์
ํ ์ ์๊ฒ ๋์์ต๋๋ค. ๋ชฉ๋ก ์ค๊ฐ์ ์์๋ฅผ ์ฝ์
ํ ๋ ์ฝ์
์ง์ ์ดํ์ ๋ชจ๋ ์์๋ฅผ โโ๋ชฉ๋ก์ ๋์ผ๋ก 1์ฉ ์ด๋ํด์ผ ํฉ๋๋ค. ์์ ์๋ ์๊ฐ์ด ๊ฑธ๋ ธ์ต๋๋ค.
๊ทธ๋ฌ๋ ์ด์ ๋ชจ๋ ๊ฒ์ด ๋ฐ๋์์ต๋๋ค. ๋ฐฐ์ด์ ๋ชจ๋ ์์๋ ๋์ผํ ๋ฉ๋ชจ๋ฆฌ ๋ธ๋ก์์ ์๋ก ๊ฐ๊น์ด ์์ผ๋ฏ๋ก ์์๋ฅผ ์ด๋ํ๋ ์์
์ ๋งค์ฐ ๋น ๋ฅธ ์ ์์ค ๋ช
๋ น์ผ๋ก ์ํ๋ฉ๋๋ค .System.arraycopy()
๋ํ ์ค๋๋ ์ ํ๋ก์ธ์์๋ ์ผ๋ฐ์ ์ผ๋ก ์ ์ฒด ๋ฐฐ์ด์ ์ ์ฅํ ์ ์๋ ํฐ ์บ์๊ฐ ์์ด ๋ฐฐ์ด ์์๋ฅผ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์๋ ์บ์ ๋ด๋ถ๋ก ์ด๋ํ ์ ์์ต๋๋ค. ๋ฐฑ๋ง ๊ฐ์ ์์๊ฐ 1๋ฐ๋ฆฌ์ด ์์ ์ฝ๊ฒ ์ด๋๋ฉ๋๋ค.
๋์งธ, ๋ฐ๋ณต์๋ฅผ ์ฌ์ฉํ์ฌ ์์๋ฅผ ์ฝ์
ํ๋ฉด ํด๋์ค์์ ์์๋ฅผ ๋น ๋ฅด๊ฒ ์ฝ์
ํ ์ ์์ต๋๋ค . LinkedList
๋ฐ๋ณต์๋ฅผ ์ฌ์ฉํ์ฌ a๋ฅผ ํต๊ณผ LinkedList
ํ๊ณ ์ง์์ ์ผ๋ก ์ ์์๋ฅผ ์ฝ์
(๋๋ ๊ธฐ์กด ์์๋ฅผ ์ ๊ฑฐ)ํ๋ฉด ์์
์ด ๋งค์ฐ ๋น ๋ฆ
๋๋ค.
LinkedList
๋ฃจํ ๋ด์ ๊ฐ์ฒด ์ ๋จ์ํ ์์๋ฅผ ์ถ๊ฐํ๋ ๊ฒฝ์ฐ ๊ฐ๊ฐ์ ๋น ๋ฅธ ์ฝ์
์์
์๋ ๋๋ฆฐ "์์ ๊ฐ์ ธ์ค๊ธฐ" ์์
์ด ์๋ฐ๋ฉ๋๋ค.
ํ์ค์ ์ด๊ฒ์ ํจ์ฌ ๋ ๊ฐ๊น์ต๋๋ค.
์์ | ๋ฐฉ๋ฒ | ๋ฐฐ์ด๋ชฉ๋ก | LinkedList |
---|---|---|---|
์์ ์ถ๊ฐ |
|
๋น ๋ฅธ | ๋งค์ฐ ๋น ๋ฆ |
์์ ์ฝ์ |
|
๋๋ฆฐ | ์์ฃผ ๋๋ฆฐ |
์์ ๊ฐ์ ธ์ค๊ธฐ |
|
๋งค์ฐ ๋น ๋ฆ | ์์ฃผ ๋๋ฆฐ |
์์ ์ค์ |
|
๋งค์ฐ ๋น ๋ฆ | ์์ฃผ ๋๋ฆฐ |
์์ ์ ๊ฑฐ |
|
๋๋ฆฐ | ์์ฃผ ๋๋ฆฐ |
๋ฐ๋ณต์๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ์ |
|
๋๋ฆฐ | ๋งค์ฐ ๋น ๋ฆ |
๋ฐ๋ณต์๋ฅผ ์ฌ์ฉํ์ฌ ์ ๊ฑฐ |
|
๋๋ฆฐ | ๋งค์ฐ ๋น ๋ฆ |
LinkedList
์ด๋ ๊ฒ ๋๋ฆฐ ์์
์์ ์์๋ฅผ ๊ฐ์ ธ์ค๋ ์ด์ ๋ ๋ฌด์์
๋๊น ?
๊ฐ ์ด๋ป๊ฒ ๊ตฌ์ฑ๋์ด ์๋์ง ์กฐ๊ธ ์๊ฒ ๋ ํ์ ์ด ์ง๋ฌธ์ ๋๋ตํ ์ ์์ต๋๋ค LinkedList
.
3. LinkedList
๊ตฌ์ฑ ๋ฐฉ๋ฒ
LinkedList
์ ๋ด๋ถ ๊ตฌ์กฐ๊ฐ ๋ค๋ฆ
๋๋ค ArrayList
. ์์๋ฅผ ์ ์ฅํ๊ธฐ ์ํ ๋ด๋ถ ๋ฐฐ์ด์ด ์์ต๋๋ค. ๋์ ์ด์ค ์ํฌ ๋ชฉ๋ก ์ด๋ผ๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค .
์ด์ค ์ฐ๊ฒฐ ๋ชฉ๋ก์ ๊ฐ ์์๋ ์ด์ ์์์ ๋ค์ ์์์ ๋ํ ์ฐธ์กฐ๋ฅผ ์ ์ฅํฉ๋๋ค. ๋ง์น ์์ ์ ์ค์ ์ ์๋ ๊ฒ๊ณผ ๋น์ทํฉ๋๋ค. ์ ๋ง๋ค ์์ ์ ์๋ ์ฌ๋๊ณผ ๋ค์ ์ ์๋ ์ฌ๋์ ๊ธฐ์ตํฉ๋๋ค.
์ด๋ฌํ ๋ชฉ๋ก์ ๋ฉ๋ชจ๋ฆฌ์์ ๋ค์๊ณผ ๊ฐ์ด ํ์๋ฉ๋๋ค.
๋จธ๋ฆฌ์ ๊ผฌ๋ฆฌ(๋ฐฐ๊ฒฝ์ด ํ์์ธ ์
)๋ ๊ฐ์ฒด ์ ๋ํ ์ฐธ์กฐ๋ฅผ ์ ์ฅํ๋ first
๋ฐ ๋ณ์์
๋๋ค .last
Node
์ค๊ฐ์๋ Node
๊ฐ์ฒด ์ฒด์ธ(๋ณ์๊ฐ ์๋ ๊ฐ์ฒด)์ด ์์ต๋๋ค. ๊ฐ๊ฐ์ ์ธ ๊ฐ์ ํ๋๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
prev
โ ์ด์ ๊ฐ์ฒด(๋ ธ๋์ ๋ฐฐ๊ฒฝ์ ์ ) ์ ๋ํ ์ฐธ์กฐ (๋งํฌ)๋ฅผ ์ ์ฅํฉ๋๋ค.Node
value
โ ๋ชฉ๋ก์ ์ด ์์ ๊ฐ์ ์ ์ฅํฉ๋๋ค(๋ฐฐ๊ฒฝ์ด ๋ น์์ธ ์ ).next
โ ๋ค์ ๊ฐ์ฒด(ํ๋์ ๋ฐฐ๊ฒฝ์ ์ ) ์ ๋ํ ์ฐธ์กฐ (๋งํฌ)๋ฅผ ์ ์ฅํฉ๋๋ค.Node
๋ ๋ฒ์งธ ๊ฐ์ฒด(์ฃผ์ F24)๋ ์ฒซ ๋ฒ์งธ ๊ฐ์ฒด์ ๊ฒฝ์ฐ ๋ค์( )์ด๊ณ ์ธ ๋ฒ์งธ ๊ฐ์ฒด์ ๊ฒฝ์ฐ next
์ด์ ( )์
๋๋ค. prev
์ธ ๋ฒ์งธ ๊ฐ์ฒด์ ๋
ธ๋์ ํ๋์๋ ์ฃผ์ F24๊ฐ ํฌํจ๋๊ณ ์ฒซ ๋ฒ์งธ ๊ฐ์ฒด์ ํ๋์ ํ๋์๋ ์ฃผ์ F24๊ฐ ํฌํจ๋ฉ๋๋ค.
์ฒซ ๋ฒ์งธ ๋ฐ ์ธ ๋ฒ์งธ ๊ฐ์ฒด์ ํ์ดํ๋ ๋์ผํ ๋ ๋ฒ์งธ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํต๋๋ค. ๋ฐ๋ผ์ ์ด๋ ๊ฒ ํ์ดํ๋ฅผ ๊ทธ๋ฆฌ๋ ๊ฒ์ด ๋ ์ ํํ ๊ฒ์ ๋๋ค.
4. ์ฐ๊ฒฐ๋ ๋ชฉ๋ก์ ์์ ์ฝ์
์ด๋ ๊ฒ ์ค์ ์ ์ฌ๋์ ์ถ๊ฐํ๋ ค๋ฉด ๋๋ํ ์ ์๋ ๋ ์ฌ๋์ ํ๋ฝ์ ๋ฐ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ์ฒซ ๋ฒ์งธ ์ฌ๋์ ์ ์ธ์ '๋ด ๋ค์ ์๋ ์ฌ๋'์ผ๋ก ๊ธฐ์ตํ๊ณ , ๋ ๋ฒ์งธ ์ฌ๋์ ๊ทธ๋ค์ '๋ด ์์ ์๋ ์ฌ๋'์ผ๋ก ๊ธฐ์ตํ๋ค.
์ธ์ ํ ๋ ๊ฐ์ฒด์ ์ฐธ์กฐ๋ฅผ ๋ณ๊ฒฝํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
๋ ๋ฒ์งธ ๋ฐ ์ธ ๋ฒ์งธ ๊ฐ์ฒด์ ์ฐธ์กฐ๋ฅผ ๋ณ๊ฒฝํ์ฌ ๋ชฉ๋ก์ ์ ํญ๋ชฉ์ ์ถ๊ฐํ์ต๋๋ค. ์ ๊ฐ์ฒด๋ ์ด์ ๋ ๋ฒ์งธ ๊ฐ์ฒด์ ๋ค์ ๊ฐ์ฒด์ด๊ณ ์ด์ ์ธ ๋ฒ์งธ ๊ฐ์ฒด์ ์ด์ ๊ฐ์ฒด์ ๋๋ค. ๋ฌผ๋ก ์ ๊ฐ์ฒด ์์ฒด๋ ์ฌ๋ฐ๋ฅธ ์ฐธ์กฐ๋ฅผ ์ ์ฅํด์ผ ํฉ๋๋ค. ์ด์ ๊ฐ์ฒด๋ ์ด์ ๋ ๋ฒ์งธ ๊ฐ์ฒด์ด๊ณ ๋ค์ ๊ฐ์ฒด๋ ์ด์ ์ธ ๋ฒ์งธ ๊ฐ์ฒด์ ๋๋ค.
์์ ์ ๊ฑฐ๋ ํจ์ฌ ๋ ์ฝ์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋ชฉ๋ก์์ 100๋ฒ์งธ ๊ฐ์ฒด๋ฅผ ์ ๊ฑฐํ๋ ค๋ฉด 99๋ฒ์งธ ๊ฐ์ฒด์ ํ๋๋ฅผ ๋ณ๊ฒฝํ์ฌ 101๋ฒ์งธ ๊ฐ์ฒด๋ฅผ next
๊ฐ๋ฆฌํค๋๋ก ํ๊ณ prev
101๋ฒ์งธ ๊ฐ์ฒด์ ํ๋๋ฅผ ๋ณ๊ฒฝํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค. ๊ฐ์ฒด๊ฐ 99๋ฒ์งธ๋ฅผ ๊ฐ๋ฆฌํค๋๋ก ํฉ๋๋ค. ๊ทธ๊ฒ ๋ค์ผ.
ํ์ง๋ง 100๋ฒ์งธ ๊ฐ์ฒด๋ฅผ ์ป๋ ๊ฒ์ ๊ทธ๋ฆฌ ์ฌ์ด ์ผ์ด ์๋๋๋ค.
5. ๋ชฉ๋ก์์ ์์ ์ ๊ฑฐ
์ฐ๊ฒฐ๋ ๋ชฉ๋ก์ 100๋ฒ์งธ ์์๋ฅผ ๊ฐ์ ธ์ค๋ ค๋ฉด ๋ค์์ ์ํํด์ผ ํฉ๋๋ค.
first
์ฒซ ๋ฒ์งธ ๊ฐ์ฒด ๊ฐ์ ธ์ค๊ธฐ: ๊ฐ์ฒด ์ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ์ด ์์
์ ์ํํฉ๋๋ค LinkedList
. ์ฒซ ๋ฒ์งธ ๊ฐ์ฒด์ ํ๋ next
๋ ๋ ๋ฒ์งธ ๊ฐ์ฒด์ ๋ํ ์ฐธ์กฐ๋ฅผ ์ ์ฅํฉ๋๋ค. ๊ทธ๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ๋ ๋ฒ์งธ ๊ฐ์ฒด๋ฅผ ์ป๋ ๋ฐฉ๋ฒ์
๋๋ค. ๋ ๋ฒ์งธ ๊ฐ์ฒด์๋ ์ธ ๋ฒ์งธ ๊ฐ์ฒด์ ๋ํ ์ฐธ์กฐ๊ฐ ์์ต๋๋ค.
100๋ฒ์งธ ๊ฐ์ฒด์ ๋ํ ์ฐธ์กฐ๋ฅผ ๊ฐ์ ธ์์ผ ํ๋ ๊ฒฝ์ฐ ๋ชจ๋ ๊ฐ์ฒด๋ฅผ 1๋ฒ์งธ๋ถํฐ 100๋ฒ์งธ๊น์ง ์์ฐจ์ ์ผ๋ก ์ด๋ํด์ผ ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ชฉ๋ก์์ ๋ฐฑ๋ง ๋ฒ์งธ ์์๊ฐ ํ์ํ ๊ฒฝ์ฐ ๋ฐฑ๋ง ๊ฐ๊ฐ ๋๋ ๊ฐ์ฒด๋ฅผ ์ฐจ๋ก๋ก ๋ฐ๋ณตํด์ผ ํฉ๋๋ค!
๊ทธ๋ฆฌ๊ณ ์ด๋ฌํ ๊ฐ์ฒด๊ฐ ๋ค๋ฅธ ์๊ฐ์ ๋ชฉ๋ก์ ์ถ๊ฐ๋ ๊ฒฝ์ฐ ๋ฉ๋ชจ๋ฆฌ์ ๋ค๋ฅธ ๋ถ๋ถ์ ์์นํ๊ฒ ๋๋ฉฐ ๋์์ ํ๋ก์ธ์์ ์บ์์ ์ ์ฅ๋์ง ์์ ์ ์์ต๋๋ค. ์ฆ, ์ฐ๊ฒฐ๋ ๋ชฉ๋ก์ ์์๋ฅผ ๋ฐ๋ณตํ๋ ๊ฒ์ด ๋๋ฆด ๋ฟ๋ง ์๋๋ผ ๋งค์ฐ ๋๋ฆฝ๋๋ค.
๊ทธ๊ฒ์ด ์ฐ๋ฆฌ๊ฐ ๋ค๋ฃจ๋ ๊ฒ์ ๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์ ์ฐ๋ฆฌ๋ ์ด ๋๋ฆฐ LinkedList
์๋ ๋ฐฉ์์ ๊ฐ๋ฅด์ณ์ผ ํ ๊น์?
๊ธ์ , ์ทจ์
๋ฉด์ ์ค์ LinkedList
๋น์ ArrayList
์ . ๋ถ๋ช
ํ.
GO TO FULL VERSION