์„ ํ˜• ๊ตฌ์กฐ(Linear Structure)์™€ ๋น„์„ ํ˜• ๊ตฌ์กฐ(Non-Linear Structure)

2020. 4. 24. 13:08ยท๐Ÿ“ Computer Science/โœ Data Structure

์ž๋ฃŒ๊ตฌ์กฐ ๋ถ„๋ฅ˜

 

1. ์„ ํ˜• ๊ตฌ์กฐ

๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ์†์ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๋ชจ์–‘์œผ๋กœ ๊ตฌ์„ฑํ•œ๋‹ค.

 

1) ๋ฐฐ์—ด(Array)

  • ๋™์ผํ•œ ์ž๋ฃŒํ˜•์˜ ๋ฐ์ดํ„ฐ๋“ค์ด ๊ฐ™์€ ํฌ๊ธฐ๋กœ ๋‚˜์—ด๋˜์–ด ์ˆœ์„œ๋ฅผ ๊ฐ–๊ณ  ์žˆ๋Š” ์ง‘ํ•ฉ์ด๋‹ค.
  • ๋น ๋ฅธ ์ ‘๊ทผ(O(1))๊ณผ random access๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.
    • ๋…ผ๋ฆฌ์  ์ €์žฅ ์ˆœ์„œ์™€ ๋ฌผ๋ฆฌ์  ์ €์žฅ ์ˆœ์„œ๊ฐ€ ์ผ์น˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ธ๋ฑ์Šค๋กœ ํ•ด๋‹น ์›์†Œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ์ธ๋ฑ์Šค๋ž€ ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ๊ฐ„๋‹จํžˆ ๊ตฌ๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ๋ฒˆํ˜ธ์ด๋‹ค. (0 ~ n-1)
  • ์ •์ ์ธ ์ž๋ฃŒ ๊ตฌ์กฐ๋กœ ๊ธฐ์–ต ์žฅ์†Œ์˜ ์ถ”๊ฐ€๊ฐ€ ์–ด๋ ต๊ณ  ๋ฐ์ดํ„ฐ ์‚ญ์ œ ์‹œ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜์–ด ์žˆ๋˜ ๊ธฐ์–ต ์žฅ์†Œ๋Š” ๋นˆ ๊ณต๊ฐ„์œผ๋กœ ๋‚จ์•„์žˆ์–ด ๋ฉ”๋ชจ๋ฆฌ ๋‚ญ๋น„๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

 

2) ๋ฐฐ์—ด ๋ฆฌ์ŠคํŠธ(Array List)

  • ๋ฐฐ์—ด๊ณผ ๊ฐ™์ด ์—ฐ์†๋˜๋Š” ๊ธฐ์–ต ์žฅ์†Œ์— ์ฐจ๋ก€๋Œ€๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜์ง€๋งŒ ๋นˆ ๊ณต๊ฐ„์ด ์—†๋‹ค.
  • ๊ธฐ์–ต ์žฅ์†Œ๋ฅผ ์—ฐ์†์ ์œผ๋กœ ๋ฐฐ์ •๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ์–ต ์žฅ์†Œ ์ด์šฉ ํšจ์œจ์€ ๊ฐ€์žฅ ์ข‹๋‹ค.
  • ์ ‘๊ทผ(O(1))์€ ๋น ๋ฅด์ง€๋งŒ ์‚ฝ์ž…๊ณผ ์‚ญ์ œ(O(n)) ์‹œ ์ž๋ฃŒ์˜ ์ด๋™์ด ํ•„์š”ํ•˜๋‹ค. 

 

3) ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ(Liked List)

  • ์ž๋ฃŒ๋“ค์„ ๋ฐ˜๋“œ์‹œ ์—ฐ์†์ ์œผ๋กœ ๋ฐฐ์—ด์‹œํ‚ค์ง€ ์•Š๊ณ  ์ž„์˜์˜ ๊ธฐ์–ต๊ณต๊ฐ„์— ๊ธฐ์–ต์‹œํ‚ค๋˜, ์ž๋ฃŒ ํ•ญ๋ชฉ์˜ ์ˆœ์„œ์— ๋”ฐ๋ผ ๋…ธ๋“œ์˜ ํฌ์ธํ„ฐ ๋ถ€๋ถ„์„ ์ด์šฉํ•˜์—ฌ ์„œ๋กœ ์—ฐ๊ฒฐ์‹œํ‚จ๋‹ค.
  • ๊ฐ๊ฐ์˜ ์›์†Œ๋“ค์€ ์ž์‹ ์˜ ์œ„์น˜์˜ ์ด์ „, ๋‹ค์Œ ์›์†Œ์˜ ์œ„์น˜๋งŒ์„ ๊ธฐ์–ตํ•œ๋‹ค.
  • ๋™์ ์ธ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ ธ ์‚ฝ์ž…๊ณผ ์‚ญ์ œ(O(1))๊ฐ€ ์šฉ์ดํ•˜์ง€๋งŒ ๊ฒ€์ƒ‰(O(n)) ์†๋„๊ฐ€ ๋А๋ฆฌ๋‹ค. ์‚ฝ์ž…๊ณผ ์‚ญ์ œ ์ „์— ๊ฒ€์ƒ‰์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฒฐ๊ตญ ๋ชจ๋‘ O(n)์˜ ์‹œ๊ฐ„ ๋ณต์žก๋„๋ฅผ ๊ฐ–๋Š”๋‹ค. 

 

4) ์Šคํƒ(Stack)

  • ํ•œ์ชฝ ๋์œผ๋กœ๋งŒ ์ž๋ฃŒ์˜ ์‚ฝ์ž…, ์‚ญ์ œ ์ž‘์—…์ด ์ด๋ฃจ์–ด์ง„๋‹ค.
  • LIFO(Last In First Out): ๊ฐ€์žฅ ๋‚˜์ค‘์— ์‚ฝ์ž…๋œ ์ž๋ฃŒ๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ์‚ญ์ œ๋œ๋‹ค.

 

5) ํ(Queue)

  • ํ•œ์ชฝ์—์„œ๋Š” ์‚ฝ์ž… ์ž‘์—…์ด ์ด๋ฃจ์–ด์ง€๊ณ  ๋‹ค๋ฅธ ํ•œ์ชฝ์—์„œ๋Š” ์‚ญ์ œ ์ž‘์—…์ด ์ด๋ฃจ์–ด์ง„๋‹ค.
  • FIFO(First In First Out): ๊ฐ€์žฅ ๋จผ์ € ์‚ฝ์ž…๋œ ์ž๋ฃŒ๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ์‚ญ์ œ๋œ๋‹ค.
  • ์šฐ์„ ์ˆœ์œ„ ํ(Priority Queue): ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ€์ง„ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋กœ ๋ณดํ†ต ํž™(Heap)์œผ๋กœ ๊ตฌํ˜„ํ•œ๋‹ค.

 

2. ๋น„์„ ํ˜• ๊ตฌ์กฐ

์„ ํ˜• ๊ตฌ์กฐ์™€๋Š” ๋‹ฌ๋ฆฌ ๋น„์„ ํ˜•์ ์ธ ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

 

๊ทธ๋ž˜ํ”„์™€ ํŠธ๋ฆฌ์˜ ์ฐจ์ด

 

1) ๊ทธ๋ž˜ํ”„(graph)

์ •์ (๋…ธ๋“œ)๊ณผ ์„ ๋ถ„(๊ฐ„์„ )์˜ ์ง‘ํ•ฉ์ด๋‹ค.

 

2) ํŠธ๋ฆฌ(Tree)

์ •์ (๋…ธ๋“œ)๊ณผ ์„ ๋ถ„(๊ฐ„์„ )์„ ์ด์šฉํ•˜์—ฌ ์‚ฌ์ดํด์„ ์ด๋ฃจ์ง€ ์•Š๋„๋ก ๊ตฌ์„ฑํ•œ ๊ทธ๋ž˜ํ”„์˜ ํŠน์ˆ˜ํ•œ ํ˜•ํƒœ๋กœ ๊ณ„์ธต์  ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค.

 

ํŠธ๋ฆฌ์˜ ๊ตฌ์„ฑ์š”์†Œ

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)
'๐Ÿ“ Computer Science/โœ Data Structure' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์„ฑ๋Šฅ ๋ถ„์„
  • ํ•ด์‹œ(Hash)
  • ๊ทธ๋ž˜ํ”„(Graph)
  • ์ด์ง„ ํŠธ๋ฆฌ(Binary Tree)
Blxxming
Blxxming
CS ์ง€์‹๊ณผ ๊ณต๋ถ€ํ•˜๋‹ค ๋ฐฐ์šด ๊ฒƒ, ๊ฒฝํ—˜ํ•œ ๊ฒƒ ๋“ฑ์„ ๊ธฐ๋กํ•˜๋Š” ๋ธ”๋กœ๊ทธ์ž…๋‹ˆ๋‹ค.
  • Blxxming
    ๐Ÿ’ก๋ฒˆ๋œฉ๐Ÿ’ก
    Blxxming
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
  • ๊ณต์ง€์‚ฌํ•ญ

    • Tech Interview
    • ๐Ÿ“š Tech (246)
      • ๐Ÿ“ Computer Science (96)
        • โœ OS (12)
        • โœ Network & Web (10)
        • โœ Database (11)
        • โœ Data Structure (6)
        • โœ Algorithm (40)
        • โœ Design Pattern (9)
        • โœ Cloud Computing (3)
        • โœ (5)
      • ๐Ÿ“ Language (73)
        • โœ Language (6)
        • โœ C & C++ (11)
        • โœ C# (19)
        • โœ JAVA (37)
      • ๐Ÿ“ Game (43)
        • โœ Computer Graphics (2)
        • โœ Unity (14)
        • โœ Unreal (26)
        • โœ (1)
      • ๐Ÿ“ Book (34)
        • โœ Effective (3)
        • โœ Game Server (16)
        • โœ Clean Code (14)
        • โœ (1)
  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.0
Blxxming
์„ ํ˜• ๊ตฌ์กฐ(Linear Structure)์™€ ๋น„์„ ํ˜• ๊ตฌ์กฐ(Non-Linear Structure)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”