• toc {:toc}

List

  • List Definitions

  • List๋Š” ADT์ด๊ณ , ๊ตฌํ˜„๋œ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.

  • Linear relationship : ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ ์ œ์™ธํ•œ ๊ฐ ์š”์†Œ๋“ค์€ ์ „์ž„์ž๋ฅผ ๊ฐ–๊ณ  ๋งˆ์ง€๋ง‰ ์š”์†Œ๋ฅผ ์ œ์™ธํ•œ ๊ฐ ์š”์†Œ๋“ค์€ ํ›„์ž„์ž๋ฅผ ๊ฐ–๋Š”๋‹ค.

  • Length : ๋ฆฌ์ŠคํŠธ์—์„œ ์š”์†Œ์˜ ์ˆ˜. ์–ธ์ œ๋“  ๊ธธ์ด๋Š” ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ๋‹ค.

  • Class Constructor

  • ํด๋ž˜์Šค์˜ ํŠน๋ณ„ํ•œ ๋ฉค๋ฒ„ ํ•จ์ˆ˜๋กœ ํด๋ž˜์Šค ๊ฐ์ฒด๊ฐ€ ์ •์˜๋  ๋•Œ ์•”๋ฌต์ ์œผ๋กœ ํ˜ธ์ถœ๋œ๋‹ค.

  • ์‚ฌ์šฉ์ž๊ฐ€ ์ •์˜ํ•œ ์ƒ์„ฑ์ž๊ฐ€ ์žˆ๋‹ค๋ฉด ํ•ด๋‹น ์ƒ์„ฑ์ž๊ฐ€ ํ˜ธ์ถœ๋˜๊ณ , ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๊ฐ€ ํ˜ธ์ถœ๋œ๋‹ค.

  • Class Constructor Rules

    1. ์ƒ์„ฑ์ž๋Š” ํ•จ์ˆ˜๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š๋Š”๋‹ค.
    2. ํด๋ž˜์Šค๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ƒ์„ฑ์ž๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ž…๋ ฅ๋˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ํƒ€์ž…๊ณผ ์ˆ˜์— ์˜ํ•ด ์ ์ ˆํ•œ ์ƒ์„ฑ์ž๋ฅผ ์„ ํƒํ•ด ์‚ฌ์šฉํ•œ๋‹ค.
    3. ์ƒ์„ฑ์ž ํŒŒ๋ผ๋ฏธํ„ฐ๋“ค์€ ํด๋ž˜์Šค ๊ฐ์ฒด์˜ ์„ ์–ธ์—์„œ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์ „๋‹ฌ๋œ๋‹ค.
    4. ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์—†๋‹ค๋ฉด ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
    5. ๋งŒ์•ฝ ํด๋ž˜์Šค๊ฐ€ ์ ์–ด๋„ ํ•˜๋‚˜์˜ ์ƒ์„ฑ์ž๋ฅผ ๊ฐ–๊ณ , ํด๋ž˜์Šค ๊ฐ์ฒด ๋ฐฐ์—ด์ด ์„ ์–ธ๋œ๋‹ค๋ฉด ๋ฐฐ์—ด์—์„œ ๊ฐ ์š”์†Œ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์ƒ์„ฑ์ž๋“ค ์ค‘ ํ•˜๋‚˜๋Š” ๋ฐ˜๋“œ์‹œ ๊ธฐ๋ณธ ์ƒ์„ฑ์ž์ด๋‹ค.
  • Generic Data Type : ๋ฐ์ดํ„ฐ ํ˜•์‹์— ์˜์กดํ•˜์ง€ ์•Š๊ณ  ํ•˜๋‚˜์˜ ๊ฐ’์ด ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋„๋ก ํ•˜์—ฌ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ธ๋‹ค.

  • Unsorted list : ํŠน์ •ํ•œ ์ˆœ์„œ ์—†์ด ์š”์†Œ๋“ค์ด ์œ„์น˜ํ•ด ์žˆ๋Š” ๋ฆฌ์ŠคํŠธ

  • ๋ฐ์ดํ„ฐ ์š”์†Œ๋“ค ์‚ฌ์ด์˜ ์œ ์ผํ•œ ๊ด€๊ณ„๋Š” ์ „์ž„์ž์™€ ํ›„์ž„์ž ๊ด€๊ณ„ ๋ฟ์ด๋‹ค.

  • ADT

    • Transformers
      • MakeEmpty
      • InsertItem : ๋งจ ๋’ค์— ๊ฐ€์ ธ๋‹ค ๋ถ™์ธ๋‹ค.
      • DeleteItem : ์ฒ˜์Œ๋ถ€ํ„ฐ ๋น„๊ตํ•˜๋ฉด์„œ ์ง€์šธ ์š”์†Œ๋ฅผ ์ฐพ๊ณ  ์ฐพ์œผ๋ฉด ๋งˆ์ง€๋ง‰ ์š”์†Œ๋ฅผ ์ง€์šธ ์š”์†Œ์— ๋ฎ์–ด์“ด๋‹ค. lengthโ€”
    • Observers
      • IsFull : length๊ฐ€ MAX_ITEMS์™€ ๊ฐ™๋‹ค๋ฉด Full
      • LengthIs : length๋ฅผ ๋ฐ˜ํ™˜
      • RetrieveItem : ์ฒ˜์Œ๋ถ€ํ„ฐ ์ˆœ์ฐจ์ ์œผ๋กœ ๋น„๊ตํ•˜๋ฉด์„œ ์ฐพ์œผ๋ฉด item์— ์ €์žฅํ•ด ๋ฐ˜ํ™˜
    • Iterators
      • ResetList : ํ˜„์žฌ ์œ„์น˜, ์ธ๋ฑ์Šค๋ฅผ -1๋กœ ์ง€์ •ํ•œ๋‹ค. O(1)
      • GetNextItem : ํ˜„์žฌ ์ธ๋ฑ์Šค+1 ํ•˜์—ฌ ํ•ด๋‹น ์ธ๋ฑ์Šค ๋ฐ์ดํ„ฐ๋ฅผ item์— ์ €์žฅํ•ด ๋ฐ˜
  • Sorted list : ๋ฆฌ์ŠคํŠธ์˜ ์š”์†Œ์˜ ํ‚ค ์‚ฌ์ด์—์„œ ์˜๋ฏธ์ ์ธ ๊ด€๊ณ„๊ฐ€ ์žˆ๊ณ , ๊ด€๊ณ„์— ๋”ฐ๋ผ ์ •๋ ฌ๋œ ๋ฆฌ์ŠคํŠธ

  • Key : ๋ฆฌ์ŠคํŠธ์˜ ๋…ผ๋ฆฌ์ ์ธ ์ˆœ์„œ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์†์„ฑ

  • ADT

    • Transformers
      • MakeEmpty
      • InsertItem : ์‚ฝ์ž…ํ•  ์š”์†Œ์˜ ์ ์ ˆํ•œ ์œ„์น˜๋ฅผ ์ฐพ๊ณ  ํ•ด๋‹น ์œ„์น˜์— ๋„ฃ๊ธฐ ์œ„ํ•œ ๊ณต๊ฐ„์„ ๋งŒ๋“ค์–ด ์š”์†Œ๋ฅผ ๋„ฃ๋Š”๋‹ค. length++
      • DeleteItem : ์ฒ˜์Œ๋ถ€ํ„ฐ ๋น„๊ตํ•˜๋ฉฐ ์ง€์šธ ์š”์†Œ์˜ ์œ„์น˜๋ฅผ ์ฐพ๊ณ  ํ•ด๋‹น ์œ„์น˜ ๋’ค์˜ ์š”์†Œ๋“ค์„ ์•ž์œผ๋กœ ๋‹น๊ฒจ์˜จ๋‹ค. lengthโ€”
    • Observers
      • IsFull : length๊ฐ€ MAX_ITEMS์™€ ๊ฐ™๋‹ค๋ฉด Full
      • LengthIs : length๋ฅผ ๋ฐ˜ํ™˜
      • RetrieveItem : ์ฒ˜์Œ๋ถ€ํ„ฐ ์ˆœ์ฐจ์ ์œผ๋กœ ๋น„๊ตํ•˜๋ฉด์„œ ์ฐพ์œผ๋ฉด item์— ์ €์žฅํ•ด ๋ฐ˜ํ™˜
    • Iterators
      • ResetList : ํ˜„์žฌ ์œ„์น˜, ์ธ๋ฑ์Šค๋ฅผ -1๋กœ ์ง€์ •ํ•œ๋‹ค. O(1)
      • GetNextItem : ํ˜„์žฌ ์ธ๋ฑ์Šค+1 ํ•˜์—ฌ ํ•ด๋‹น ์ธ๋ฑ์Šค ๋ฐ์ดํ„ฐ๋ฅผ item์— ์ €์žฅํ•ด ๋ฐ˜
  • RetrieveItem์˜ ํƒ์ƒ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ• โ†’ ์ด์ง„ ํƒ์ƒ‰

  • ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋น„๊ต(์–ด๋–ป๊ฒŒ ์ตœ์ ์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์„๊นŒ?)

  • ํšจ์œจ์„ฑ์„ ์œ„ํ•œ ๊ฐ๊ด€์ ์ธ ์ธก์ • ๋ฐฉ๋ฒ•

    • ์‹คํ–‰ ์‹œ๊ฐ„
    • ์‹คํ–‰ ์ค„์˜ ์ˆ˜
    • ๊ธฐ๋ณธ ์—ฐ์‚ฐ ์ˆ˜
    • Big-O notation โ†’ ์ตœ์•…์˜ ๊ฒฝ์šฐ ๋ฐœ์ƒํ•˜๋Š” ๋ณต์žก๋„๋ฅผ ํšจ์œจ์„ฑ ์ธก์ •
      • : bounded time
      • : logarithmic time
      • : linear time
      • : time
      • : quadratic time
      • : exponential time