자료ꡬ쑰 λž€?

λŒ€λŸ‰ 데이터λ₯Ό 효율적으둜 κ΄€λ¦¬ν•˜λŠ” κ΅¬μ‘°μž…λ‹ˆλ‹€.

자료ꡬ쑰λ₯Ό μ™œ 곡뢀해야 ν• κΉŒ?

싀행속도λ₯Ό κ²°μ •ν•˜λŠ” 것은 λŒ€μ²΄λ‘œ λ©”λͺ¨λ¦¬(RAM)이고, λ©”λͺ¨λ¦¬(RAM)의 μš©λŸ‰μ„ μ ˆμ•½ν•΄μ£Όκ³ , μ‹€ν–‰μ‹œκ°„μ„ λ‹¨μΆ•μ‹œμΌœ 효율적인 μ‚¬μš©μ„ μœ„ν•΄ ν•„μš”ν•©λ‹ˆλ‹€.

자료ꡬ쑰 μ’…λ₯˜

  1. λ°°μ—΄(Array)
    • 데이터λ₯Ό λΉˆν‹ˆμ—†μ΄ λ‚˜μ—΄ν•œ μžλ£Œκ΅¬μ‘°μž…λ‹ˆλ‹€.
  2. 리슀트(List)
    • 데이터λ₯Ό μˆœμ„œλŒ€λ‘œ λ‚˜μ—΄ν•œ μžλ£Œκ΅¬μ‘°μž…λ‹ˆλ‹€.
    • λ°°μ—΄κ³Ό 차이점은 데이터듀을 ν™”μ‚΄ν‘œλ‘œ μ„œλ‘œ μ—°κ²°λ˜μ–΄ μžˆμ–΄ 데이터듀이 떨어진 μž₯μ†Œμ— μœ„μΉ˜ν•΄λ„ μƒκ΄€μ—†μŠ΅λ‹ˆλ‹€.
  3. μŠ€νƒ(Stack)
    • 책상 μœ„μ— 책을 μŒ“λ“― 데이터λ₯Ό κ΄€λ¦¬ν•˜λŠ” μžλ£Œκ΅¬μ‘°μž…λ‹ˆλ‹€.
    • 데이터λ₯Ό λ„£λŠ” μˆœμ„œμ™€ λ°˜λŒ€μ˜ μˆœμ„œλ‘œ 데이터λ₯Ό κΊΌλ‚΄λŠ” 데이터 관리 λ°©λ²•μž…λ‹ˆλ‹€.
  4. 큐 or λŒ€κΈ° ν–‰λ ¬(Queue)
    • 쀄을 μ„  μ†λ‹˜λΆ€ν„° μ°¨λ‘€λ‘œ κ³„μ‚°ν•˜λ“― 데이터λ₯Ό 넣은 μˆœμ„œλŒ€λ‘œ 데이터λ₯Ό κΊΌλ‚΄λŠ” 데이터 관리 λ°©λ²•μž…λ‹ˆλ‹€.
  5. 트리 or λ‚˜λ¬΄ ꡬ쑰(Tree)
    • λ‚˜λ¬΄κ°€μ§€κ°€ 2개, 3개둜 κ°ˆλΌμ§€λ“― λ‚˜λ‰˜λ“― 퍼져 λ‚˜κ°€λŠ” μžλ£Œκ΅¬μ‘°μž…λ‹ˆλ‹€.

λ°°μ—΄

μŠ€νƒ(Stack)

μŠ€νƒμ΄λΌλŠ” λ‹¨μ–΄λŠ” β€œμŒ“λ‹€β€λΌλŠ” 뜻이 μžˆμŠ΅λ‹ˆλ‹€.

μŠ€νƒμ€ 책상에 책을 μŒ“λ“― 데이터λ₯Ό μŒ“μ•„ κ΄€λ¦¬ν•˜λŠ” λ°©λ²•μž…λ‹ˆλ‹€.

  1. 데이터λ₯Ό λ„£λŠ”(μŒ“λŠ”) μž‘μ—…μ„ ν‘Έμ‹œ(PUSH)
  2. 데이터λ₯Ό κΊΌλ‚΄λŠ” μž‘μ—…μ„ 팝(POP)

μŠ€νƒμ€ λ§ˆμ§€λ§‰μ— μž…λ ₯된 데이터가 λ¨Όμ € 좜λ ₯λ˜λŠ” νŠΉμ§•μ•ˆ λ°©μ‹μœΌλ‘œ LIFO(Last In, First Out) or FILO(First In, Last Out)라고 λΆ€λ¦…λ‹ˆλ‹€.

큐 or λŒ€κΈ° ν–‰λ ¬(Queue)

큐 or λŒ€κΈ° 행렬은 쀄을 μ„  μ†λ‹˜λΆ€ν„° κ³„μ‚°ν•˜λ“― 데이터λ₯Ό 순

λ¨Όμ € μž…λ ₯ν•œ 데이터가 λ¨Όμ € 좜λ ₯λ˜λŠ” νŠΉμ§•μ„ 가진 μžλ£Œκ΅¬μ‘°μž…λ‹ˆλ‹€.