โ๏ธ 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. ์ด์ 1 ๋ค์