๊ฐ์ ์๋ฃํ์ ๊ฐ์ง ๋ฐ์ดํฐ๋ฅผ ๊ทธ๋ฃนํํด ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๋ ๋ฐ์ดํฐ ์คํธ๋ญ์ฒ.
๋ฉ๋ชจ๋ฆฌ์ ์์ฐจ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค.
์ธ๋ฑ์ค๋ฅผ ์ด์ฉํ ๋ฐ์ดํฐ ์กฐํ๊ฐ ๋น ๋ฅด๋ค.
- ๋ฐ์ดํฐ ํฌ๊ธฐ๊ฐ ์ปดํ์ผ์ ๊ฒฐ์ ๋์ด ํฌ๊ธฐ๋ฅผ
๋ณ๊ฒฝํ ์ ์๋ค.
- ๋ฐ์ดํฐ
์ญ์ ์ ๋น ๊ณต๊ฐ์ผ๋ก ๋จ๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ญ๋นํ ์ ์๋ค.
// java
int[] arr = {1, 2, 3, 4};
// ๋ฐฐ์ด์ ์ญ์ ๋ฉ์๋๊ฐ ์กด์ฌํ์ง ์์.
arr.length(); // 4
// 0 ๋ฑ ํ๋ก๊ทธ๋๋จธ๊ฐ ์๋ฏธ์ ์ญ์ ํ๋ ์ฝ๋๋ฅผ ์์ฑํ๋๋ผ๋ ๊ธธ์ด๋ 4๋ก ๊ณ ์ ๋์ด์๋ค.
- ๊ฐ์ ์๋ฃํ,
์์๊ฐ ์๋ ์๋ฆฌ๋จผํธ๋ค์ ๋ชจ์์ด๋ผ๋ ํน์ง์ ๋ฐฐ์ด๊ณผ ๊ฐ๋ค.
- ํ์ง๋ง ๋ฐฐ์ด๊ณผ ๋ค๋ฅด๊ฒ
์ญ์ ํ๋๋ผ๋ ๋น๊ณต๊ฐ์ ํ์ฉํ์ง ์๋๋ค.
- ์์๊ฐ ์์ง๋ง ๋ฉ๋ชจ๋ฆฌ์ ์์ฐจ์ ์ผ๋ก ์ ์ฌ๋์ด ์๋์ง ์๋์ง๋ ๊ตฌํ๋
์ธ์ด๋ณ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ง๋ค ๋ค๋ฅธ๋ค.
- ๋ฆฌ์คํธ์
์ธ๋ฑ์ค๋ ์กด์ฌํ์ง๋ง ์ผ๋ฐ์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์์์ ์๋ฏธ๋ณด๋ค๋ ๋ช๋ฒ์งธ ๋ฐ์ดํฐ์ธ์ง๋ฅผ ์๋ฏธํ๋ค.
// java
List<Integer> list = new ArrayList<>();
for (int i = 1; i <= 4; i++) {
list.add(i); // 1, 2, 3, 4 ์ ์ฅ
}
list.size(); // 4
list.remove(0); // index 0์ ์์นํ ๋ฐ์ดํฐ ์ญ์
list.size(); // 3
- ๋ด๋ถ ๊ตฌํ์ด
Array(๋ฐฐ์ด)๋ก ๋์ด ์๋ค.
- ํฌ๊ธฐ๋ฅผ ๋์ ์ผ๋ก ๋ณ๊ฒฝํ ์ ์์ง๋ง
๋ด๋ถ์ ์ผ๋ก ๋ฐฐ์ด์ด๊ธฐ ๋๋ฌธ์ ๋ณ๊ฒฝ๋๋ ํฌ๊ธฐ์ ๋ฐ๋ผ ๋ฐฐ์ด์ ์ฌํ ๋น์ด ์ผ์ด๋๋ค.
- ๋ฐ๋ผ์ ์ธ๋ฑ์ค๋ก ์ธํ
์กฐํ ์ฑ๋ฅ์ด ์ข์ผ๋ฉฐ ์ฝ์
, ์ญ์ ์ ์ฑ๋ฅ์ด ๋จ์ด์ง๋ค.
- ๋ด๋ถ ๊ตฌํ์ด
Linked List(์ฐ๊ฒฐ๋ฆฌ์คํธ)๋ก ๋์ด ์๋ค.
- ์ฐ๊ฒฐ๋ฆฌ์คํธ๋ ๊ฐ ๋
ธ๋๊ฐ ๋ฐ์ดํฐ์ ํฌ์ธํฐ๋ฅผ ๊ฐ์ง๊ณ ํ์ค๋ก ์ฐ๊ฒฐ๋์ด ์๋ ๋ฐฉ์์ด๋ค.
- ๋ฐ๋ผ์ ํ์ํ ๋ head ๋ถํฐ ์์ํ๋ฉฐ
O(n) ์๊ฐ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค.
get(index) ๋ฉ์๋๊ฐ ๊ตฌํ๋์ด ์์ง๋ง ๋ด๋ถ์ ์ผ๋ก head๋ถํฐ ํ์ํ๊ธฐ์ ํ์ ์ฑ๋ฅ์ด ๋จ์ด์ง๋ค.
์ฝ์
, ์ญ์ ๊ฐ ๋น๋ฒํ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค.
์ํ์ฝ๋ฉ - Data Structure (์๋ฃ๊ตฌ์กฐ) ์ค ๋ฆฌ์คํธ