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

Frontend Dev/๐Ÿฅ ์ฝ”๋“œ์Šคํ…Œ์ด์ธ  FE ๋ถ€ํŠธ์บ ํ”„

Section4 Unit1 [์ž๋ฃŒ๊ตฌ์กฐ/์•Œ๊ณ ๋ฆฌ์ฆ˜] ๊ธฐ์ดˆ - Stack, Queue

๋ฐ˜์‘ํ˜•

https://betterprogramming.pub/stack-vs-queue-55d6ea7b2f4f


Section4 Unit1 [์ž๋ฃŒ๊ตฌ์กฐ/์•Œ๊ณ ๋ฆฌ์ฆ˜] ๊ธฐ์ดˆ - Stack, Queue

 

๐Ÿ“Œ Chapter1. ์ž๋ฃŒ๊ตฌ์กฐ

• ์ž๋ฃŒ๊ตฌ์กฐ๋ž€ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ์˜ ๋ฌถ์Œ์„ ์ €์žฅํ•˜๊ณ , ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ •์˜ํ•œ ๊ฒƒ

• ์ž์ฃผ ๋“ฑ์žฅํ•˜๋Š” ๋„ค ๊ฐ€์ง€์˜ ์ž๋ฃŒ๊ตฌ์กฐ: Stack, Queue, Tree, Graph

 

๐Ÿ“Œ Chapter2. Stack๊ณผ Queue

 ๋ถ€ํŠธ์บ ํ”„๋ฅผ ํ†ตํ•ด Stack๊ณผ Queue๋ฅผ ๊ณต๋ถ€ํ•˜๋ฉฐ, ๋…ธ์…˜์— ์ •๋ฆฌ๋ฅผ ํ•ด๋†จ๋Š”๋ฐ ๋ธ”๋กœ๊ทธ์— ๋”ฐ๋กœ ๊ธ€์„ ์“ธ๊นŒ ํ•˜๋‹ค๊ฐ€ ์šฐ์„ ์€ ๋ณด๋ฅ˜ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜๊ธฐ๋„ ํ–ˆ๊ณ , ์ต์ˆ™์น˜ ์•Š์€ ๊ฐœ๋…์ด๋ผ ์กฐ๊ธˆ ๋” ๊ฐœ์ธ ๋…ธ์…˜์— ์ •๋ฆฌ๋ฅผ ํ•ด๋‘๊ณ  ๊ณต๋ถ€๋ฅผ ํ•˜๋Š”๊ฒŒ ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ๊ฐœ๋…์ •๋„๋งŒ ๊ธฐ๋กํ•ด๋ณผ๊นŒ ํ•œ๋‹ค.

 

Stack ๋ฐ์ดํ„ฐ(data)๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์Œ“๋Š” ์ž๋ฃŒ๊ตฌ์กฐ

• Stack์€ ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์ด ํ•˜๋‚˜์˜ ๋ฐฉํ–ฅ, ์ฆ‰ ์Šคํƒ์˜ ์ตœ์ƒ๋‹จ์—์„œ๋งŒ ์ด๋ฃจ์–ด์ ธ ์ ‘๊ทผ์ด ์ œํ•œ์ ์ด๋‹ค.

LIFO(Last In First Out) ํ˜น์€ FILO(First In Last Out)์˜ ํŠน์ง•์„ ๊ฐ€์ง„๋‹ค.

• Stack์— ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๋Š” ๊ฒƒ์€ PUSH ๋ฐ์ดํ„ฐ๋ฅผ ๊บผ๋‚ด๋Š” ๊ฒƒ์€ POP


Queue ํ(Queue)๋Š” ์ค„์„ ์„œ์„œ ๊ธฐ๋‹ค๋ฆฌ๋‹ค, ๋Œ€๊ธฐํ–‰๋ ฌ์ด๋ผ๋Š” ๋œป์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

• ๋จผ์ € ๋“ค์–ด๊ฐ„ ๋ฐ์ดํ„ฐ(data)๊ฐ€ ๋จผ์ € ๋‚˜์˜ค๋Š” FIFO(First In First Out) ํ˜น์€ LILO(Last In Last Out)์˜ ํŠน์ง•์„ ๊ฐ€์ง„๋‹ค.

• Queue ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ์ž…๋ ฅ์˜ ๋ฐฉํ–ฅ๊ณผ ์ถœ๋ ฅ์˜ ๋ฐฉํ–ฅ์ด ๊ฐ๊ฐ ๊ณ ์ •๋˜์–ด ์žˆ์œผ๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅํ•  ์‹œ์—๋Š” ํ์˜ ๋์—์„œ(tail), ๋ฐ์ดํ„ฐ๋ฅผ ์ถœ๋ ฅํ•  ๋•Œ๋Š” ํ์˜ ๋งจ ์•ž์—์„œ(head) ์ง„ํ–‰๋œ๋‹ค.

• Queue์— ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๋Š” ๊ฒƒ์€ enqueue ๋ฐ์ดํ„ฐ๋ฅผ ๊บผ๋‚ด๋Š” ๊ฒƒ์€ dequeue

 

โœ๏ธ ์—ฐ์Šต๋ฌธ์ œ

 ๐Ÿ’ฌ ์•„์ง ๋ชป ํ‘ผ ๋ฌธ์ œ๊ฐ€ ์žˆ์–ด์„œ ์ถ”ํ›„ ์ˆ˜์ • ์˜ˆ์ • ๐Ÿซ 


๐ŸŒ™  ์˜ค๋Š˜์˜ ํšŒ๊ณ 

 ๋“œ๋””์–ด ๋งˆ์ง€๋ง‰, Section4๋กœ ์ง„์ž…ํ•œ ์ฒซ ๋‚ ! ๋‘๊ทผ๋Œ€๋Š” ๊ธฐ๋Œ€๊ฐ๊ณผ๋Š” ๋‹ฌ๋ฆฌ ์ด์ œ๋Š” ํ”ผ๋กœ์™€ ๊ฑฑ์ •๋งŒ ๋ชฐ๋ ค์™€์„œ ๋ฒŒ์จ ํ•œ ๋‹ฌ์ด ํ›Œ์ฉ ์ง€๋‚˜๊ณ  ์ƒˆ๋กœ์šด ์„น์…˜์„ ๋งž์ดํ–ˆ๋‹ค๋Š” ๊ฒƒ์ด ๋ฏฟ์–ด์ง€์ง€๊ฐ€ ์•Š๋Š”๋‹ค. ๋ญ”๊ฐ€ ๋ฐฐ์šฐ๊ธฐ๋Š” ํ–ˆ๋Š”๋ฐ, ์ด๊ฑธ๋กœ ๋‚ด๊ฐ€ ๋ฌด์–ธ๊ฐ€ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”์ง€๋Š” ์ž˜ ๋ชจ๋ฅด๊ฒ ๋Š”๋ฐ ๋‹ค์Œ์ฃผ์—๋Š” ์ผ์ฃผ์ผ๊ฐ„์˜ ์†”๋กœ ํ”„๋กœ์ ํŠธ๋„ ํ•˜๋‚˜ ์žˆ์—ˆ๋‹ค. ์šฐ์„  ๊ฑฑ์ • ํ•˜๋‚˜ ์Œ“์•„๋‘๊ณ , ๊ณต๋ถ€๋ฅผ ๋” ์—ด์‹ฌํžˆ ํ•ด์•ผํ•  ๊ฒƒ ๊ฐ™๋‹ค.

 ์˜ค๋Š˜ ํ•™์Šต ๋‚ด์šฉ์€ ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด์—ˆ๋‹ค. ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ๋‚ด์šฉ์ธ Stack๊ณผ Queue. ์ด๋ก ์€ ๋ณผ๋งŒํ–ˆ๋˜ ๊ฒƒ ๊ฐ™์€๋ฐ, ์—ฐ์Šต๋ฌธ์ œ๋Š” ์–ด๋ ค์›Œ์„œ ๋ฐ˜์€ ๊ฑฐ์˜ ์ฐธ๊ณ ํ•ด์„œ ํ’€์—ˆ๋‹ค. ๊ทธ๋ž˜๋„ ‘์ž๋ฃŒ๊ตฌ์กฐ’๋ผ๋Š” ๊ฒƒ ์ž์ฒด์— ๋Œ€ํ•ด์„œ๋Š” ์žฌ๋ฏธ๊ฐ€ ์žˆ์—ˆ๋‹ค. ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ป๊ฒŒ ์ •๋ฆฌํ•˜๊ณ , ์‚ฌ์šฉํ•˜๋Š”์ง€์— ๋Œ€ํ•œ ๋ฐฉ๋ฒ•์ด ํฅ๋ฏธ๋กœ์› ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.

 ์‚ฌ์‹ค ์š”์ฆ˜์—๋Š” ํšŒ๊ณ  ์“ธ ๊ธฐ์šด๋„ ์—†๊ณ , ๋ช‡ ์ค„ ์•ˆ๋˜๋Š” ํ•˜๋ฃจ์˜ ๊ฐ„๋‹จํ•œ ์ด ํšŒ๊ณ ๊ฐ€ ๊ท€์ฐฎ๊ณ , ๊ตณ์ด ์“ธ ํ•„์š” ์žˆ๋‚˜ ์‹ถ๊ธฐ๋„ ํ•˜๊ณ , ์ด ์‹œ๊ฐ„์„ ๊ณต๋ถ€๋‚˜ ํœด์‹์œผ๋กœ ๋ณด๋‚ด๋Š”๊ฒŒ ๋‚ซ๋‚˜ ์‹ถ๊ธฐ๋„ ํ•œ๋ฐ ๋Œ์ด์ผœ ์ƒ๊ฐํ•ด๋ณด๋ฉด ์ด๋ ‡๊ฒŒ ์ž ๊น์ด๋‚˜๋งˆ ์˜ค๋Š˜ ํ•˜๋ฃจ๋ฅผ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„์„ ๋ณด๋‚ด๋Š”๊ฒŒ ํ•˜๋ฃจ๋ฅผ ์ •๋ฆฌํ•˜๊ณ , ๋‚ด์ผ์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๋Š”๋ฐ์—๋Š” ๋„์›€์ด ๋˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ์ด๋ฒˆ ์ฃผ๋ง, ๋˜ ํž˜๋‚ด์•ผ์ง€.

๋ฐ˜์‘ํ˜•