|
| 1 | +# Array and LinkedList |
| 2 | + |
| 3 | +> Array |
| 4 | +
|
| 5 | +> Array vs List |
| 6 | +
|
| 7 | +> LinkedList |
| 8 | +
|
| 9 | +## Array |
| 10 | + |
| 11 | +์์ฐจ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์๋ฃ ๊ตฌ์กฐ |
| 12 | + |
| 13 | +- ์ฃผ๋ก ์๋ก ์ฐ๊ฒฐ๋ ๋ฐ์ดํฐ๋ค์ ์์ฐจ์ ์ผ๋ก ์ ์ฅํ ๋ ์ฌ์ฉ |
| 14 | +- ์ฝ์
์์๋๋ก ์ ์ฅ (์๋ก ์ฝ์
๋๋ ์์๋ ๋ฐฐ์ด์ ๋งจ ๋์ ์์น) |
| 15 | +- ์ด๋ฏธ ์์ฑ๋ ๊ฒ๋ ์์ ๊ฐ๋ฅ(mutable) |
| 16 | +- ๋์ผํ ๊ฐ ์ฌ๋ฌ๋ฒ ์ฝ์
๊ฐ๋ฅ |
| 17 | +- ๋ค์ค์ฐจ์ ๋ฐฐ์ด(Multi-dimentional Array): ๋ฐฐ์ด ์์ ๋ฐฐ์ด์ด ๋ค์ด์ฌ ์ ์์ |
| 18 | +- **๊ณ ์ ๋ ํฌ๊ธฐ**๋ฅผ ๊ฐ๋ **๊ฐ์ ์๋ฃํ**์ ์์๋ค์ด **์ฐ์์ ์ธ** ํํ๋ก ๊ตฌ์ฑ๋ ์๋ฃ๊ตฌ์กฐ |
| 19 | + |
| 20 | +> `์์ฐจ์ ์๋ฃ๊ตฌ์กฐ(Sequential Data Structure)`: ๋ฐ์ดํฐ๋ค์ด ์์ฐจ์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋์ด ์๋ ๊ตฌ์กฐ |
| 21 | +
|
| 22 | +## Array ํน์ง |
| 23 | + |
| 24 | + |
| 25 | + |
| 26 | +1. `์ธ๋ฑ์ค(index)`๋ก ํด๋น ์์์ ์ ๊ทผํ ์ ์๋ค. |
| 27 | +2. ์ถ๊ฐ์ ์ผ๋ก ์๋ชจ๋๋ ๋ฉ๋ชจ๋ฆฌ ์(overhead)์ด ๊ฑฐ์ ์๋ค. |
| 28 | +3. `Cache hit rate`๊ฐ ๋๋ค. |
| 29 | +4. ๋ฐฐ์ด์ ์์ฑํ๋ ค๋ฉด ๋ฉ๋ชจ๋ฆฌ ์์ ์ฐ์ํ ๊ตฌ๊ฐ์ ํ ๋นํด์ผํด์ ํ ๋น์ ์ ์ฝ์ด ๊ฑธ๋ฆด ์ ์๋ค. |
| 30 | + |
| 31 | +## Array ์ฐ์ฐ๋ค๊ณผ ์๊ฐ ๋ณต์ก๋ |
| 32 | + |
| 33 | +- ์์์ ์์น์ ์๋ ์์๋ฅผ ํ์ธํ๊ฑฐ๋ ๋ณ๊ฒฝํ๋ ์ฐ์ฐ: `O(1)` |
| 34 | +- ๋ฐฐ์ด์ ๊ฐ์ฅ ๋์ ์์ ์ถ๊ฐ: `O(1)` |
| 35 | +- ๋ฐฐ์ด์ ๊ฐ์ฅ ๋ ์์ ์ญ์ : `O(1)` |
| 36 | +- ์์์ ์์น์ ์์๋ฅผ ์ถ๊ฐํ๊ธฐ : `O(n)` |
| 37 | +- ์์์ ์์น์ ์๋ ์์ ์ ๊ฑฐ: `O(n)` |
| 38 | + |
| 39 | +## Array ์ฅ์ |
| 40 | + |
| 41 | +- ๋๋ค ์ก์ธ์ค๊ฐ ๋น ๋ฅด๋ค. |
| 42 | +- `index`๋ฅผ ํตํด ์์์ `O(1)` ์๊ฐ๋ณต์ก๋๋ง์ ๋น ๋ฅด๊ฒ ์ ๊ทผํ ์ ์๋ค. |
| 43 | + |
| 44 | +## Array ๋จ์ |
| 45 | + |
| 46 | + |
| 47 | + |
| 48 | +- Array์ ์ค๊ฐ ์์๋ฅผ ์ญ์ ํ ๊ฒฝ์ฐ, ๋ค์ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํ ์์ ์ ๋งํผ `shift`ํด์ค์ผ ํ๋ ๋น์ฉ์ด ๋ฐ์ํ๊ณ ์ด ๊ฒฝ์ฐ์ ์๊ฐ ๋ณต์ก๋๋ `O(n)`์ด ๋๋ค. (์ฝ์
์ ๊ฒฝ์ฐ๋ ๋ง์ฐฌ๊ฐ์ง) |
| 49 | +- ์ฐ์๋ ๋ฉ๋ชจ๋ฆฌ ์์ ์์๋ค์ด ์กด์ฌํ๋ฏ๋ก ์ฒ์ ๋ฐฐ์ด์ ์ ์ธํ ํฌ๊ธฐ๋งํผ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ์ง ์๋๋ค๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๊ฐ ๋ฐ์ํ๋ค. |
| 50 | + |
| 51 | +### Dynamic Array ๋ฌธ์ |
| 52 | + |
| 53 | +- ๋ฐ์ดํฐ๋ฅผ ์๋ก ์ถ๊ฐํ ๋ `Resizing ๋ฌธ์ `(๋ฉ๋ชจ๋ฆฌ์ ์ฌ์ด์ฆ๋ฅผ ๋ค์ ์กฐ์ ํ๋ ๋ฌธ์ )๊ฐ ์๊ธธ ์ ์๋ค. |
| 54 | + |
| 55 | +๋ฐฐ์ด์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์์ฐจ์ ์ผ๋ก ์ฑ์ฐ๋ฉฐ, ์ฒ์ ์์ฑ๋ ๋ ์ด๋ ์ ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ฏธ๋ฆฌ ํ ๋น(pre-allocation)ํ๋ค. |
| 56 | +๋ฉ๋ชจ๋ฆฌ๋ฅผ pre-allocationํ๋ฉด์ ์๋ก ์ถ๊ฐ๋๋ ์์๋ค๋ ์์ฐจ์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ์ ์๋ค. |
| 57 | +ํ์ง๋ง ์ฒ์ ํ ๋นํ ๊ฒ๋ณด๋ค ์์๊ฐ ๋ ๋ง์์ง๋ค๋ฉด `resizing`์ด ํ์ํ๋ค. |
| 58 | +Array ํน์ฑ์, ์ถ๊ฐ์ ์ผ๋ก ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ ๋ํ ์์ฐจ์ ์ผ๋ก ๋ค์ด๊ฐ์ผ ํ๊ธฐ ๋๋ฌธ์ ์๋์ ์ผ๋ก ์ค๋ ๊ฑธ๋ฆฐ๋ค. |
| 59 | + |
| 60 | + |
| 61 | + |
| 62 | +- ๊ธฐ์กด์ ๋ฐฐ์ด์ ๊ทธ๋๋ก ๋๊ณ |
| 63 | +- ์๋ก์ด ๊ธธ์ด๋ก ์ง์ ๋ ๋ฐฐ์ด์ ๋ฐ๋ก ํ ๋น ํ |
| 64 | +- ๋ฐ์ดํฐ์ ๋ณต์ฌ๋ฅผ ์งํํ๊ณ |
| 65 | +- ๊ธฐ์กด์ ๋ฐฐ์ด์ ์ญ์ |
| 66 | + |
| 67 | +## Array์ ์ฌ์ฉํ๋ฉด ์ข์ ๊ฒฝ์ฐ |
| 68 | + |
| 69 | +- ์์ฐจ์ ์ธ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๋(ex. ๋ํ ๊ฒฐ๊ณผ) |
| 70 | +- ๋ค์ฐจ์ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ ๋ (ex. ๋ฐฐ์ด ์์ ๋ฐฐ์ด์ด ํ์ํ ๊ฒฝ์ฐ) |
| 71 | +- ๋ฐ์ดํฐ ์ฌ์ด์ฆ๊ฐ ์์ฃผ ๋ฐ๋์ง ์์ ๋ |
| 72 | +- ์์๊ฐ ์์ฃผ ์ญ์ ๋๊ฑฐ๋ ์ถ๊ฐ๋์ง ์์ ๋ |
| 73 | +- ๋ฐฐ์ด์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฒ์ํ๋ ์์
์ด ๋ง์ ๋ |
| 74 | + |
| 75 | +## ๋ฐฐ์ด(Array) vs ๋ฆฌ์คํธ(List) |
| 76 | + |
| 77 | +### ๋ฆฌ์คํธ(list) |
| 78 | + |
| 79 | +**์์๊ฐ ์๋ ๋ฐ์ดํฐ์ ๋ชจ์**์ด๋ค. ๋ค๋ฅธ ๋ง๋ก๋ ์ํ์ค(sequence)๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค. |
| 80 | + |
| 81 | +- ์์ฐจ์ฑ์ ๋ณด์ฅํ์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ `spacial locality` ๋ณด์ฅ์ด ๋์ง ์์ `cache hit`๊ฐ ์ด๋ ต๋ค. |
| 82 | +- ๋ฆฌ์คํธ์์ ์ธ๋ฑ์ค๋ ๋ช ๋ฒ์งธ ๋ฐ์ดํฐ์ธ๊ฐ ์ ๋์ ์๋ฏธ๋ฅผ ๊ฐ์ง๋ค. (๋ฐฐ์ด์์์ ์ธ๋ฑ์ค๋ ๊ฐ์ ๋ํ ์ ์ผ๋ฌด์ดํ ์๋ณ์) |
| 83 | + |
| 84 | +> spacial locality: ํ๋ก๊ทธ๋จ ์คํ ์ ์ ๊ทผํ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ์ด๋ฏธ ์ ๊ทผ์ด ์ด๋ฃจ์ด์ง ์์ญ์ ๊ทผ์ฒ์ผ ํ๋ฅ ์ด ๋๋ค๋ ํ๋ก๊ทธ๋จ ์ฑ๊ฒฉ ํํ |
| 85 | +
|
| 86 | +### ์ธ์ด๋ณ list ์ง์ |
| 87 | + |
| 88 | +- ์ต๊ทผ ์ธ์ด๋ค์ ๋ฆฌ์คํธ๋ฅผ ๊ธฐ๋ณธ์ผ๋ก ์ ๊ณต |
| 89 | + |
| 90 | +**C** |
| 91 | + |
| 92 | +- ๋ฆฌ์คํธ๋ฅผ ์ง์ํ์ง ์๋๋ค. ๋์ ๋ฐฐ์ด์ ์ง์ํ๋ค. |
| 93 | +- ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์ง์ ๋ง๋ค๊ฑฐ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค. |
| 94 | + |
| 95 | +**JavaScript** |
| 96 | + |
| 97 | +- ๋ฐฐ์ด์ ๋ฆฌ์คํธ์ ๊ธฐ๋ฅ์ด ํฌํจ๋์ด ์๋ค. |
| 98 | + |
| 99 | +**Python** |
| 100 | + |
| 101 | +- ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฆฌ์คํธ๋ฅผ ์ ๊ณตํ๋ฉฐ, ๋ฐฐ์ด์ ์ ๊ณตํ์ง์๋๋ค. |
| 102 | +- ํ์ด์ฌ์์๋ ๋ฆฌ์คํธ๊ฐ ๋ฐฐ์ด์ด๋ค. |
| 103 | +- ํ์ด์ฌ์ ๋ฆฌ์คํธ๋ ํฌ๊ธฐ๊ฐ ๊ฐ๋ณ์ ์ด๊ณ , ์ด๋ค ์์ ํ์
์ด๋ ์ ์ฅํ ์ ์๋ค๋ ์ฅ์ ์ ๊ฐ์ง๋ค. ๋์ C์ ๋ฐฐ์ด๋ณด๋ค ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ ๋ง์ด ํ์๋ก ํ๋ค๋ ๋จ์ ์ด ์๋ค. |
| 104 | + |
| 105 | +**Java** |
| 106 | + |
| 107 | +- ๋ฐฐ์ด๊ณผ ๋ฆฌ์คํธ๋ฅผ ๋ชจ๋ ์ง์ํ๊ณ , ๋ ๊ฐ์ง๊ฐ ์์ ํ ๋ถ๋ฆฌ๋์ด ์๋ค. |
| 108 | +- ๊ฐ๋ฐ์๊ฐ ์ํ๋ ๋๋ก ๋ฐฐ์ด๊ณผ ๋ฆฌ์คํธ ์ค ์ ํํ ์ ์๋ค. |
| 109 | +- ํฌ๊ฒ 2๊ฐ์ง ํํ์ ๋ฆฌ์คํธ๋ฅผ ์ง์ํ๋ค. |
| 110 | + - `LinkedList` |
| 111 | + - `ArrayList` |
| 112 | + |
| 113 | +## Java - ArrayList/LinkedList |
| 114 | + |
| 115 | +- ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํด์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ด ๋น๋ฒํ๋ค๋ฉด ๋ด๋ถ์ ์ผ๋ก ๋ฐฐ์ด์ ์ด์ฉํ๋ `ArrayList`๊ฐ ๋ ๋น ๋ฅด๋ค. |
| 116 | +- ๋ฐ์ดํฐ์ ์ถ๊ฐ/์ญ์ ๊ฐ ๋น๋ฒํ๋ค๋ฉด `LinkedList`๊ฐ ๋ ํจ๊ณผ์ ์ด๋ค. |
| 117 | + |
| 118 | +### ArrayList |
| 119 | + |
| 120 | +- ๋ฐฐ์ด์ ์ด์ฉํด์ ๋ฆฌ์คํธ๋ฅผ ๊ตฌํํ ๊ฒ์ ์๋ฏธํ๋ค. |
| 121 | +- ์ฅ์ : ๋ด๋ถ์ ์ผ๋ก ๋ฐฐ์ด์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ธ๋ฑ์ค๋ฅผ ์ด์ฉํด์ ์ ๊ทผํ๋ ๊ฒ์ด ๋น ๋ฅด๋ค. |
| 122 | +- ๋จ์ : ๋ฐ์ดํฐ์ ์ถ๊ฐ์ ์ญ์ ๊ฐ ๋๋ฆฌ๋ค. |
| 123 | + |
| 124 | +## LinkedList |
| 125 | + |
| 126 | +๋ฐฐ์ด์ ๋ฏธ๋ฆฌ ํน์ ํ ์ฐ๊ฒฐ๋ ๊ณต๊ฐ์ ํ๋ณดํ๊ณ ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ณ ์๋ ์๋ฃ๊ตฌ์กฐ์ด๊ณ , ๋งํฌ๋ ๋ฆฌ์คํธ๋ ํ์ํ ๋ ๋ง๋ค ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ ์ ์๋ ๊ตฌ์กฐ์ด๋ค. |
| 127 | +๋ฐฐ์ด์ ๋จ์ ์ ๊ทน๋ณตํ ์๋ฃ๊ตฌ์กฐ๊ฐ `๋งํฌ๋ ๋ฆฌ์คํธ`๋ผ๊ณ ๋ณผ ์ ์๋ค. |
| 128 | + |
| 129 | +## LinkedList ๊ตฌ์กฐ |
| 130 | + |
| 131 | + |
| 132 | + |
| 133 | +### ๋
ธ๋ |
| 134 | + |
| 135 | +์ฐ๊ฒฐ๋ฆฌ์คํธ '๋
ธ๋'๋ผ๋ ๊ฐ์ฒด๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. |
| 136 | + |
| 137 | +- Data๋ฅผ ์ ์ฅํ ๊ณต๊ฐ |
| 138 | +- ๋ค์ ๋
ธ๋์ ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํฌ ๊ณต๊ฐ |
| 139 | + |
| 140 | +```c |
| 141 | +struct LinkedList { |
| 142 | + int data; |
| 143 | + struct LinkedList *next; |
| 144 | +} |
| 145 | +``` |
| 146 | + |
| 147 | + |
| 148 | + |
| 149 | +- ๊ฐ ๋
ธ๋๋ ์ฐ์๋ ๊ณต๊ฐ์ ์ ์ฅ๋์ด ์์ง ์๊ณ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฌ ๋ถ๋ถ์ ๋ถํฌ๋์ด ์๋ค. |
| 150 | +- ๊ฐ ๋
ธ๋์ ๋ค์ ๋
ธ๋์ ์ฃผ์๋ฅผ ์ ์ฅํจ์ผ๋ก์จ ๋ค์ ๋
ธ๋๋ฅผ ํ์ํ ์ ์๋ค. |
| 151 | +- ๋
ธ๋๊ฐ ๊ฐ๋ฆฌํค๋ ๋ค์ ์ฃผ์๊ฐ NULL์ด๋ฉด ์ด๋
ธ๋๋ ๋ง์ง๋ง ๋
ธ๋๋ผ๊ณ ํ ์ ์๋ค. |
| 152 | + |
| 153 | +## LinkedList ์ฅ์ |
| 154 | + |
| 155 | +- ๋์ ์ผ๋ก ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค. |
| 156 | +- ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค. |
| 157 | +- ๋ฐ์ดํฐ ์ฌ๊ตฌ์ฑ์ด ์ฉ์ดํ๋ค. |
| 158 | +- ๋์ฉ๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์ ์ ํฉํ๋ค. |
| 159 | + |
| 160 | +## LinkedList ๋จ์ |
| 161 | + |
| 162 | +- ํน์ ์์น ๋ฐ์ดํฐ ๊ฒ์ํ ๋ ๋๋ฆฌ๋ค. |
| 163 | +- ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ถ๊ฐ์ ์ผ๋ก ์ฌ์ฉํด์ผํ๋ค. |
| 164 | + |
| 165 | +## ๋ฐ์ดํฐ ์ถ๊ฐ |
| 166 | +### ์์๋ถ๋ถ์ ์ถ๊ฐ |
| 167 | + |
| 168 | + |
| 169 | +1. ์๋ก์ด ๋
ธ๋๋ฅผ ์์ฑํ๋ค. |
| 170 | +`Vertex temp = new Vertex(input)` |
| 171 | +2. ์๋ก์ด ๋
ธ๋์ ๋ค์ ๋
ธ๋๋ก ์ฒซ๋ฒ์งธ ๋
ธ๋๋ฅผ ๊ฐ๋ฆฌํจ๋ค. |
| 172 | +`temp.next = head` |
| 173 | +3. ์๋ก ๋ง๋ค์ด์ง ๋
ธ๋๊ฐ ์ฒซ๋ฒ์งธ ๋
ธ๋๊ฐ ๋๋๋ก head์ ๊ฐ์ ๋ณ๊ฒฝํ๋ค. |
| 174 | +`head = temp` |
| 175 | + |
| 176 | +### ์ค๊ฐ์ ์ถ๊ฐ |
| 177 | +- 3๋ฒ์งธ ์๋ฆฌ(์ธ๋ฑ์ค 2)์ 90์ ์ถ๊ฐํ๊ธฐ |
| 178 | + |
| 179 | + |
| 180 | + |
| 181 | +1. ์ฐ์ 3๋ฒ์งธ ์๋ฆฌ๋ฅผ ์ฐพ์์ผ ํ๋ค. |
| 182 | +2. head๋ฅผ ์ฐธ์กฐํด์ ์ฒซ๋ฒ์งธ ๋
ธ๋๋ฅผ ์ฐพ๋๋ค. |
| 183 | +`Vertext temp1 = head` |
| 184 | +3. 23์๋ฆฌ์ ์๋ก์ด ๋
ธ๋๋ฅผ ์์น์ํค๊ธฐ์ํด์๋ 6์ ์๊ณ ์์ด์ผํ๋ค. 6์ temp1์ผ๋ก ์ง์ ํ๊ธฐ ์ํ ๋ฐ๋ณต๋ฌธ์ด๋ค. |
| 185 | +```js |
| 186 | +//ํ์ฌ k์ ๊ฐ์ 2 |
| 187 | +while (--k != 0) |
| 188 | + temp1 = temp1.next |
| 189 | +``` |
| 190 | +4. 6์ next๋ฅผ ์ด์ฉํด์ 23์ ์ฐพ์์ temp2๋ก ์ง์ ํ๋ค. |
| 191 | +`Vertext temp2 = temp1.next` |
| 192 | +5. ๊ฐ์ด 90์ธ ์๋ก์ด ๋
ธ๋๋ฅผ ์์ฑํ๋ค. |
| 193 | +`Vertext newVertex = new Vertex(input)` |
| 194 | +6. 6์ ๋ค์ ๋
ธ๋๋ก ์๋ก์ด ๋
ธ๋๋ฅผ ์ง์ ํ๋ค. |
| 195 | +`temp1.next = newVertex` |
| 196 | +7. ์๋ก์ด ๋
ธ๋์ ๋ค์ ๋
ธ๋๋ก 23๋ฒ์ ์ง์ ํ๋ค. |
| 197 | +`newVertex.next = temp2` |
| 198 | + |
| 199 | +## ๋ฐ์ดํฐ ์ญ์ |
| 200 | +- ์ธ๋ฒ์งธ ๋
ธ๋(์ธ๋ฑ์ค 2)๋ฅผ ์ ๊ฑฐํ๊ธฐ |
| 201 | + |
| 202 | + |
| 203 | + |
| 204 | + |
| 205 | +1. head๋ฅผ ์ด์ฉํด์ ์ฒซ๋ฒ์งธ ๋
ธ๋๋ฅผ ์ฐพ๋๋ค. |
| 206 | +`Vertex cur = head` |
| 207 | +2. ๋๋ฒ์งธ ๋
ธ๋๋ก ์ด๋ํ๋ค. |
| 208 | +```js |
| 209 | +//k = 2 |
| 210 | +while(--k!=0) |
| 211 | + cur = cur.next |
| 212 | +``` |
| 213 | +3. ์ธ๋ฒ์งธ ๋
ธ๋ ์ฐพ๋๋ค. |
| 214 | +`Vertex tobedeleted = cur.next` |
| 215 | +4. ๋๋ฒ์งธ ๋
ธ๋์ next๋ฅผ 23์ผ๋ก ๋ณ๊ฒฝํ๋ค. |
| 216 | +`cur.next = cur.next.next` |
| 217 | +5. 90์ ์ญ์ ํด์ ๋ฉ๋ชจ๋ฆฌ์์ ์ ๊ฑฐํ๋ค. |
| 218 | +`delete tobedeleted` |
| 219 | + |
| 220 | +## LinkedList ์ฐ์ฐ๋ค๊ณผ ์๊ฐ ๋ณต์ก๋ |
| 221 | + |
| 222 | +- ๋ฐ์ดํฐ ํ์: ์์ฐจ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ด๋ค ํ ๋ฐ์ดํฐ๋ฅผ ์ฐพ๊ธฐ ์ํด์๋ ์ฒ์๋ถํฐ ์์ฐจ์ ์ผ๋ก ํ์ํด์ผ ํ๋ค.: `O(n)` |
| 223 | +- ์ฝ์
/์ญ์ : `O(1)` |
| 224 | +- ์ํ๋ ๋
ธ๋์ ์ ๊ทผ + ์ฝ์
/์ญ์ : `O(n+1)` |
| 225 | +- ๊ฐ์ฅ ์์ ์ ๊ทผ + ์ฝ์
/์ญ์ : `O(1)` |
| 226 | +- ๊ฐ์ฅ ๋ค์ ์ ๊ทผ + ์ฝ์
: `O(1+1)`(tail ๋
ธ๋ ๋ฐ๋ก ์ง์ ํ ๊ฒฝ์ฐ) |
| 227 | +- ๋ค์์ ๋๋ฒ์งธ ๋
ธ๋(tail ๋
ธ๋ ์ ๋
ธ๋)์ ๊ทผ + ์ญ์ : `O(n+1)` |
| 228 | + |
| 229 | +## Array vs LinkedList |
| 230 | +Array๋ Random Access๋ฅผ ์ง์ํ๋ค. ์์๋ค์ ์ธ๋ฑ์ค๋ฅผ ํตํด ์ง์ ์ ๊ทผํ ์ ์๋ค. ๋ฐ๋ผ์ ํน์ ์์์ ์ ๊ทผํ๋ ์๊ฐ ๋ณต์ก๋๋ O(1)์ด๋ค. |
| 231 | +๋ฐ๋ฉด Linkedlist๋ Sequential Access๋ฅผ ์ง์ํ๋ค. ์ด๋ค ์์๋ฅผ ์ ๊ทผํ ๋ ์์ฐจ์ ์ผ๋ก ๊ฒ์ํ๋ฉฐ ์ฐพ์์ผ ํ๋ค. ๋ฐ๋ผ์ ํน์ ์์์ ์ ๊ทผํ ๋ ์๊ฐ ๋ณต์ก๋๋ O(N)์ด๋ค. |
| 232 | + |
| 233 | +์ ์ฅ ๋ฐฉ์๋ ๋ฐฐ์ด์์ ์์๋ค์ ์ธ์ ํ ๋ฉ๋ชจ๋ฆฌ ์์น์ ์ฐ์ด์ด ์ ์ฅ๋๋ค. |
| 234 | +๋ฐ๋ฉด Linkedlist์์๋ ์๋ก์ด ์์์ ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ ์์น ์ฃผ์๊ฐ linkedlist์ ์ด์ ์์์ ์ ์ฅ๋๋ค. |
| 235 | + |
| 236 | +๋ฐฐ์ด์์ ์ฝ์
๊ณผ ์ญ์ ๋ O(N)์ด ์์๋์ง๋ง, Linkedlist์์ ์ฝ์
๊ณผ ์ญ์ ๋ O(1)์ด ์์๋๋ค. |
| 237 | + |
| 238 | +๋ฐฐ์ด์์ ๋ฉ๋ชจ๋ฆฌ๋ ์ ์ธ ์ ์ปดํ์ผ ํ์์ ํ ๋น์ด ๋๋ค. (์ ์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น) |
| 239 | +๋ฐ๋ฉด Linkedlist์์๋ ์๋ก์ด ์์๊ฐ ์ถ๊ฐ๋ ๋ ๋ฐํ์์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๋ค. (๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น) |
| 240 | + |
| 241 | +๋ฐฐ์ด์ Stack ์น์
์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ด ์ด๋ฃจ์ด์ง๋ค. ๋ฐ๋ฉด Linkedlist๋ Heap ์น์
์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ด ์ด๋ฃจ์ด์ง๋ค. |
| 242 | +--- |
| 243 | + |
| 244 | +## ์ฐธ๊ณ |
| 245 | + |
| 246 | +[Array](https://blog.encrypted.gg/927?category=773649) |
| 247 | +[Array](https://kim-mj.tistory.com/236) |
| 248 | +[ArrayVSList](https://wayhome25.github.io/cs/2017/04/17/cs-18-1/) |
| 249 | +[LinkedList](https://opentutorials.org/module/1335/8821) |
| 250 | +[LinkedList](https://sycho-lego.tistory.com/17) |
| 251 | +[LinkedList](https://opentutorials.org/module/1335/8821) |
| 252 | + |
| 253 | +## Q&A |
| 254 | + |
| 255 | +--- |
| 256 | + |
| 257 | +> 1. Array์ LinkedList์ ์ฐจ์ด์ ์ ์ค๋ช
ํ์ธ์ |
| 258 | +
|
| 259 | +> 2. Array(List)์ ๊ฐ์ฅ ํฐ ํน์ง๊ณผ ๊ทธ๋ก ์ธํด ๋ฐ์ํ๋ ์ฅ์ ๊ณผ ๋จ์ ์ ๋ํด ์ค๋ช
ํ์ธ์. |
| 260 | +
|
| 261 | +> 3. Array๋ฅผ ์ ์ฉ์ํค๋ฉด ์ข์ ๋ฐ์ดํฐ์ ์๋ฅผ ๊ตฌ์ฒด์ ์ผ๋ก ๋ค์ด์ฃผ์ธ์. ๊ตฌ์ฒด์ ์์์ ํจ๊ป Array๋ฅผ ์ ์ฉํ๋ฉด ์ข์ ์ด์ , ๊ทธ๋ฆฌ๊ณ Array๋ฅผ ์ฌ์ฉํ์ง ์์ผ๋ฉด ์ด๋ป๊ฒ ๋๋์ง ํจ๊ป ์์ ํด์ฃผ์ธ์. |
0 commit comments