๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

โœ’๏ธ Data Structures & Algorithms5

[Data Structures & Algorithms] ํ(Queue)์˜ ์‘์šฉ๊ณผ ๋ฐํฌ(Deque) ๐ŸŽฉ ํ(Queue)์˜ ์‘์šฉ_1) ์šด์˜์ฒด์ œ์˜ ์ž‘์—… ํ ๐Ÿ’œ ํ”„๋ฆฐํ„ฐ ๋ฒ„ํผ ํ (Printer Buffer Queue) : CPU์—์„œ ํ”„๋ฆฐํ„ฐ๋กœ ๋ณด๋‚ธ ๋ฐ์ดํ„ฐ ์ˆœ์„œ๋Œ€๋กœ ํ”„๋ฆฐํ„ฐ์—์„œ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด ์„ ์ž…์„ ์ถœ ๊ตฌ์กฐ์˜ ํ ์‚ฌ์šฉ ๐Ÿ’œ ์Šค์ผ€์ค„๋ง ํ (Scheduling Queue) : CPU ์‚ฌ์šฉ์„ ์š”์ฒญํ•œ ํ”„๋กœ์„ธ์„œ๋“ค์˜ ์ˆœ์„œ๋ฅผ ์Šค์ผ€์ค„๋งํ•˜๊ธฐ ์œ„ํ•ด ํ ์‚ฌ์šฉ ๐ŸŽฉ ํ(Queue)์˜ ์‘์šฉ_2) ์‹œ๋ฎฌ๋ ˆ์ด์…˜์—์„œ์˜ ํ์ž‰ ์‹œ์Šคํ…œ : ์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ ์œ„ํ•œ ์ˆ˜ํ•™์  ๋ชจ๋ธ๋ง์—์„œ ๋Œ€๊ธฐ ํ–‰๋ ฌ ๋ฐ ๋Œ€๊ธฐ ์‹œ๊ฐ„ ๋“ฑ์„ ๋ชจ๋ธ๋งํ•˜๊ธฐ ์œ„ํ•ด ํ์ž‰ ์ด๋ก (Queue Theory)์„ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•œ๋‹ค. ๐ŸŽฉ ๋ฐํฌ(Deque)๋ž€? ๊ธฐ์กด์˜ ํ 2๊ฐœ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ขŒ์šฐ๋กœ ๋’ค์ง‘์— ๊ฒฐํ•ฉ์‹œํ‚จ ๊ตฌ์กฐ๋กœ, ํ์˜ ์–‘์ชฝ ๋์—์„œ ์‚ฝ์ž…๊ณผ ์‚ญ์ œ ์—ฐ์‚ฐ์„ ๋ชจ๋‘ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ™•์žฅํ•œ ์ž๋ฃŒ ๊ตฌ์กฐ๋ฅผ ๋ฐํฌ(Deque).. 2023. 6. 11.
[Data Structures & Algorithms] ํ(Queue)์˜ ์ดํ•ด์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (์—ฐ๊ฒฐ ํ, ์ˆœ์ฐจ ํ, ์›ํ˜• ํ) ๐Ÿฆ„ ํ(Queue)๋ž€? ํ(Queue)๋Š” ๋ฐ์ดํ„ฐ์˜ ์‚ฝ์ž…๊ณผ ์‚ญ์ œ๊ฐ€ ๊ฐ๊ฐ ๋‹ค๋ฅธ ๋์—์„œ ์ด๋ฃจ์–ด์ง€๋Š” ์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ๋กœ, "์„ ์ž…์„ ์ถœ(FIFO, First-In-First-Out)" ์›์น™์„ ๋”ฐ๋ฅธ๋‹ค. ์Šคํƒ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๊ณ  ์‚ฝ์ž…๊ณผ ์‚ญ์ œ ์œ„์น˜๊ฐ€ ์ œํ•œ๋˜์–ด ์žˆ์œผ๋ฉฐ ๋’ท ๋ถ€๋ถ„์—์„œ๋Š” ์‚ฝ์ž…๋งŒ์„, ์•ž ๋ถ€๋ถ„์—์„œ๋Š” ์‚ญ์ œ ์ž‘์—…๋งŒ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„๋‹ค. ๐Ÿ’œ ํ(Queue)์™€ ์Šคํƒ ์—ฐ์‚ฐ ํ•ญ๋ชฉ ์‚ฝ์ž… ์—ฐ์‚ฐ ์‚ญ์ œ ์—ฐ์‚ฐ ์ž๋ฃŒ๊ตฌ์กฐ ์—ฐ์‚ฐ์ž ์‚ฝ์ž… ์œ„์น˜ ์—ฐ์‚ฐ์ž ์‚ญ์ œ ์œ„์น˜ Stack push top pop top Queue enQueue rear deQueue front ๐Ÿ’œ ํ(Queue)์˜ ์ถ”์ƒ ์ž๋ฃŒํ˜• ADT Queue //๊ณต๋ฐฑ ํ ์ƒ์„ฑ createQueue() ::= create an empty Q; //ํ๊ฐ€ ๊ณต๋ฐฑ ์ƒํƒœ์ธ์ง€ ๊ฒ€์‚ฌ isEmpty(Q).. 2023. 6. 11.
[Data Structures & Algorithms] ์Šคํƒ(Stack)์˜ ์ดํ•ด์™€ ์‘์šฉ ๐Ÿงฟ ์Šคํƒ(Stack) ์ด๋ž€? ์Šคํƒ(Stack)์ด๋ž€ ํ•œ์ชฝ ๋์—์„œ๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•˜๊ณ  ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋Š” ์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ, ๋งˆ์ง€๋ง‰์œผ๋กœ ์‚ฝ์ž…๋œ ์›์†Œ๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ์‚ญ์ œ๋˜๋Š” "ํ›„์ž…์„ ์ถœ(LIFO, Last-In-First-Out)"์˜ ํŠน์ง•์„ ๊ฐ€์ง„๋‹ค. ์Šคํƒ(Stack) ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ ์ฃผ๋กœ ํ•จ์ˆ˜ ํ˜ธ์ถœ, ์žฌ๊ท€ ์•Œ๊ณ ๋ฆฌ์ฆ˜, ๋’ค๋กœ๊ฐ€๊ธฐ ๊ธฐ๋Šฅ ๋“ฑ์—์„œ ํ™œ์šฉ๋œ๋‹ค. ๐Ÿ’™ ์Šคํƒ(Stack)์—์„œ์˜ ์—ฐ์‚ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‚ญ์ œ ์—ฐ์‚ฐ ์‚ฝ์ž… ์—ฐ์‚ฐ pop push โ‘  ์Šคํƒ์˜ push() ์•Œ๊ณ ๋ฆฌ์ฆ˜ push(S,x) top stack_SIZE) then overflow; else //์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ์ƒํƒœ๊ฐ€ ์•„๋‹Œ ๊ฒฝ์šฐ ์•„๋ž˜ ์ฝ”๋“œ ์‹คํ–‰ { S(top) ํ›„์ž… ์„ ์ถœ ๊ตฌ์กฐ์ธ Stack์„ ์ด์šฉํ•˜์—ฌ ๊ด„ํ˜ธ ๊ฒ€์‚ฌ ๊ฐ€๋Šฅ โ€ป ์ˆ˜์‹์„ ์™ผ์ชฝ์—์„œ ์˜ค.. 2023. 6. 11.
[Data Structures & Algorithms] ์›ํ˜• ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์™€ ์ด์ค‘ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ (์›ํ˜• ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ & ์ด์ค‘ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์˜ ์—ฐ์‚ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜) ๐ŸŽช ์›ํ˜• ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋ž€? ๋‹จ์ˆœ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์—์„œ ๋งˆ์ง€๋ง‰ ๋…ธ๋“œ๊ฐ€ ๋ฆฌ์ŠคํŠธ์˜ ์ฒซ ๋ฒˆ์žฌ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ฒŒ ํ•˜์—ฌ ๊ตฌ์กฐ๋ฅผ ์›ํ˜•์œผ๋กœ ์„ค์ •ํ•œ ๋ฆฌ์ŠคํŠธ๋ฅผ ์›ํ˜• ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋ผ๊ณ  ํ•œ๋‹ค. ๋‹จ์ˆœ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์ด ๋งˆ์ง€๋ง‰ ๋…ธ๋“œ์˜ ๋งํฌ ํ•„๋“œ์— ์ฒซ ๋ฒˆ์งธ ๋…ธ๋“œ์˜ ์ฃผ์†Œ๋ฅผ ์ €์žฅํ•˜์—ฌ, ๋งํฌ๋ฅผ ๋”ฐ๋ผ ๋ฐ˜๋ณต ์ˆœํšŒํ•  ์‹œ ์ด์ „ ๋…ธ๋“œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. โค๏ธ ์›ํ˜• ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ์•Œ๊ณ ๋ฆฌ์ฆ˜_ 1) ์‚ฝ์ž… ์—ฐ์‚ฐ โ‘  ์ฒซ ๋ฒˆ์งธ ๋…ธ๋“œ๋กœ ์‚ฝ์ž…ํ•˜๊ธฐ insertFirstNode(CL, x) new 2023. 6. 11.
[Data Structures & Algorithms] ์—ฐ๊ฒฐ ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ (๋‹จ์ˆœ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์™€ ์—ฐ์‚ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜) ๐ŸŽฏ ์—ฐ๊ฒฐ ์ž๋ฃŒ๊ตฌ์กฐ(Linked Data Structure)๋ž€? ์—ฐ๊ฒฐ ์ž๋ฃŒ๊ตฌ์กฐ๋ž€ ์ž๋ฃŒ์˜ ๋…ผ๋ฆฌ์  ์ˆœ์„œ์™€ ๋ฌผ๋ฆฌ์  ์ˆœ์„œ๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๋งํ•œ๋‹ค. ๊ฐ ์›์†Œ์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๋‹ค์Œ ์›์†Œ์˜ ์ฃผ์†Œ์— ์˜ํ•ด ์ˆœ์„œ๊ฐ€ ์—ฐ๊ฒฐ๋˜๋ฏ€๋กœ, ๋ฌผ๋ฆฌ์  ์ˆœ์„œ๋ฅผ ๋งž์ถ”๊ธฐ ์œ„ํ•œ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ํŠน์ง•์ด ์žˆ๋‹ค. ๐ŸŽฏ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ(Linked List)๋ž€? ๋ฆฌ์ŠคํŠธ๋ฅผ ์—ฐ๊ฒฐ ์ž๋ฃŒ๊ตฌ์กฐ ํ˜•์‹์œผ๋กœ ํ‘œํ˜„ํ•œ ๊ฒƒ์„ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ(Linked List)๋ผ๊ณ  ํ•˜๋ฉฐ, ์—ฐ๊ฒฐ ๋ฐฉ์‹์— ๋”ฐ๋ผ ๋‹จ์ˆœ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ, ์›ํ˜• ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ, ์ด์ค‘ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ, ์ด์ค‘ ์›ํ˜• ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ๋กœ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค. โค๏ธ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์˜ ๋…ธ๋“œ : ์—ฐ๊ฒฐ ์ž๋ฃŒ๊ตฌ์กฐ์—์„œ ํ•˜๋‚˜์˜ ์›์†Œ๋ฅผ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๋‹จ์œ„ ๊ตฌ์กฐ ๋…ธ๋“œ์˜ ๋…ผ๋ฆฌ์  ๊ตฌ์กฐ ๋ฐ์ดํ„ฐ ํ•„๋“œ (Data field) ๋งํฌ ํ•„๋“œ (Link fiel.. 2023. 6. 10.