[C์–ธ์–ด] ์Šคํƒ ๊ด„ํ˜ธ ๊ฒ€์‚ฌํ•˜๊ธฐ (์—๋Ÿฌ์œ„์น˜๊ฒ€์ถœ)
ยท
๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์Šคํƒ
๊ด„ํ˜ธ ๊ฒ€์‚ฌ๋ž€? ๊ด„ํ˜ธ์˜ ์ข…๋ฅ˜๋กœ๋Š” ๋Œ€์ค‘์†Œ๊ฐ€ ์žˆ๋Š”๋ฐ 3๊ฐ€์ง€ ์กฐ๊ฑด์ด ์„ฑ๋ฆฝํ•ด์•ผ ํ•œ๋‹ค. ์™ผ์ชฝ ๊ด„ํ˜ธ์˜ ๊ฐœ์ˆ˜์™€ ์˜ค๋ฅธ์ชฝ ๊ด„ํ˜ธ์˜ ๊ฐœ์ˆ˜๊ฐ€ ๊ฐ™์•„์•ผ ํ•œ๋‹ค. ๋™์ผ ํƒ€์ž…์˜ ๊ด„ํ˜ธ์—์„œ ์™ผ์ชฝ ๊ด„ํ˜ธ๋Š” ์˜ค๋ฅธ์ชฝ ๊ด„ํ˜ธ๋ณด๋‹ค ๋จผ์ € ๋‚˜์™€์•ผ ํ•œ๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ ํƒ€์ž…์˜ ๊ด„ํ˜ธ ์Œ์ด ์„œ๋กœ๋ฅผ ๊ต์ฐจํ•˜๋ฉด ์•ˆ๋œ๋‹ค. ๊ด„ํ˜ธ ๊ฒ€์‚ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์—ฌ๋Š” ๊ด„ํ˜ธ๊ฐ€ ๋‚˜์˜ค๋ฉด ์œ„์น˜์™€ ํ•จ๊ป˜ PUSH ๋‹ซ๋Š” ๊ด„ํ˜ธ๊ฐ€ ๋‚˜์˜ค๋ฉด POP์„ ํ•˜์—ฌ ์ง์„ ๋น„๊ต ๋น„๊ต ์ˆœ์„œ 1. ์Šคํƒ์˜ ๊ธธ์ด๊ฐ€ 0์ด๋ฉด ์—ฌ๋Š”๊ด„ํ˜ธ๊ฐ€ ์•ž์— ์—†๊ณ  ๋‹ซ๋Š”๊ด„ํ˜ธ๊ฐ€ ๋‚˜์™”๋‹ค๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์—๋Ÿฌ 2. ์Šคํƒ์˜ ๊ธธ์ด๊ฐ€ 0์ด ์•„๋‹Œ ๊ฒฝ์šฐ์—๋Š”, ์ผ๋‹จ POP์„ ํ•œ ๋’ค ํ˜„์žฌ ๊ด„ํ˜ธ์™€ ์ง์ด ๋งž๋Š” ๊ด„ํ˜ธ๊ฐ€ ์Šคํƒ์— ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌํ•œ๋‹ค. (์ง์ด ๋งž๋‹ค๋ฉด ์•„๋ฌด๊ฒƒ๋„ ์•ˆํ•ด๋„๋จ, ์ด๋ฏธ pop์„ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ) ๋งŒ์•ฝ ์•„๋‹ˆ๋ผ๋ฉด POPํ–ˆ๋˜ ๊ด„ํ˜ธ๋ฅผ PUSHํ•ด์ค˜์•ผํ•จ.(์—ฌ๊ธฐ๊นŒ์ง€๊ฐ€ ์—ฌ๋Š”๊ด„ํ˜ธ์—๋Ÿฌ)..
[์ž๋ฃŒ๊ตฌ์กฐ] ์Šคํƒ(Stack)์˜ ๊ตฌํ˜„(์‚ฝ์ž…,์ œ๊ฑฐ,๊ฒ€์ƒ‰) - C์–ธ์–ด
ยท
๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์Šคํƒ
์Šคํƒ์˜ ๊ตฌํ˜„ ์Šคํƒ์„ ๊ตฌํ˜„ํ•  ๋•Œ๋Š” ๋ฐฐ์—ด๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜๋„ ์žˆ๊ณ , ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ(Linked List)๋ฅผ ์ด์šฉํ•ด ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ๋ฐฐ์—ด์„ ์ด์šฉํ•ด ๊ฐ„๋‹จํžˆ ๊ตฌํ˜„ํ•ด๋ณธ๋‹ค. ์Šคํƒ์˜ ์ดˆ๊ธฐํ™” #include #define STACK_SIZE 10 // ์Šคํƒ์˜ ์‚ฌ์ด์ฆˆ int stack[STACK_SIZE]; // ์Šคํƒ int top = -1; // ๊ฐ€์žฅ ์œ„์˜ ์›์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ฌ top ๋ณ€์ˆ˜ ์Šคํƒ์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ๊ฒฐ์ •ํ•  STACK_SIZE๋ฅผ ํ• ๋‹นํ•˜๊ณ  ํ•ด๋‹น ์‚ฌ์ด์ฆˆ๋งŒํผ์˜ ๋ฐฐ์—ด์„ ์„ ์–ธํ•œ๋‹ค. ๋˜ํ•œ ๊ฐ€์žฅ ์œ„์˜ ์›์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ฌ top ๋ณ€์ˆ˜๋ฅผ -1๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค. ์ด๋Š” ์Šคํƒ์˜ ์ธ๋ฑ์Šค๋ฅผ 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค. ์Šคํƒ์˜ isFull(), isEmpty() ํ•จ์ˆ˜ ๊ตฌํ˜„ int isFull(){ if(top >= STACK_SIZE -1){ // stac..
[์ž๋ฃŒ๊ตฌ์กฐ] ์Šคํƒ(Stack)์˜ ๊ฐœ๋…๊ณผ ์šฉ๋„
ยท
๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์Šคํƒ
์Šคํƒ์˜ ์šฉ๋„ 1. ์ž๋ฃŒ์˜ ์ˆœ์„œ๋ฅผ ๋’ค์ง‘๋Š”๋ฐ ์œ ์šฉํ•˜๋‹ค. ์Šคํƒ์˜ ์š”์†Œ๋ฅผ ํ•˜๋‚˜์”ฉ ๋ฝ‘์•„์„œ ๋ฐฐ์—ด์— ์ €์žฅํ•œ๋‹ค. ๊ทธ๋Ÿผ ๋ฐฐ์—ด์˜ ์š”์†Œ๊ฐ€ ๋’ค์ง‘์–ด์ง€๊ฒŒ ๋œ๋‹ค. ์ด๋Ÿฐ ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ์˜ ์ˆœ์„œ๋ฅผ ๋’ค์ง‘๋Š”๋ฐ ์Šคํƒ์ด ๋งŽ์ด ํ™œ์šฉ๋˜๊ณ  ์žˆ๋‹ค. 2. ์žฌ๊ท€ ํ•จ์ˆ˜๋ฅผ ์ œ๊ฑฐํ•˜๋Š”๋ฐ ์œ ์šฉํ•˜๋‹ค. ์žฌ๊ท€ ํ•จ์ˆ˜๋Š” ์ž๊ธฐ ์ž์‹ ์„ ๊ณ„์† ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋ถ€๋ฅผ ๋•Œ๋งˆ๋‹ค ์Šคํƒ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์žก๋Š”๋‹ค. ํ•จ์ˆ˜ ์•ˆ์— ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ณ€์ˆ˜๋ฅผ ์Šคํƒ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•œ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ์Šคํƒ์˜ ์ค‘๊ฐ„ ๋ณ€์ˆ˜๊ฐ’์„ ๊ณ„์† ์˜ฌ๋ฆฌ๊ณ  ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. ๋”ฐ๋ผ์„œ ์žฌ๊ท€ ํ•จ์ˆ˜๋ฅผ ์žฌ๊ท€๋ฅผ ๋นผ๊ณ  ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ์Šคํƒ์˜ ์ค‘๊ฐ„ ๊ฐ’์„ ์ €์žฅํ•˜๋Š” ๊ณผ์ •์„ ์Šคํƒ ์ž๋ฃŒ ๊ตฌ์กฐ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์Šคํƒ ์ž๋ฃŒ๊ตฌ์กฐ + ๋ฐ˜๋ณต๋ฌธ - > ์žฌ๊ท€๋กœ ๋งŒ๋“ฆ. 3. ์ปดํ“จํ„ฐ ์—ฐ์‚ฐ ์ˆœ์„œ์— ๋งž๊ฒŒ ์ž๋ฃŒ ์žฌ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๋กœ ํ›„์œ„(postfix..
์Šคํƒ(Stack)์ด๋ž€?
ยท
๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜/์Šคํƒ
Stack์˜ ๊ฐœ๋… ์Šคํƒ ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ๋งˆ์น˜ ์ ‘์‹œ๊ฐ€ ์Œ“์ด๋Š” ๊ฒƒ๊ณผ ๋น„์Šทํ•˜๋‹ค. ์ ‘์‹œ๋ฅผ ์Œ“์„ ๋•Œ ์•„๋ž˜๋ถ€ํ„ฐ ์œ„๋กœ ์ฐจ๊ทผ์ฐจ๊ทผ ์ ‘์‹œ๋ฅผ ์Œ“๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค. ์ด๋•Œ ์ ‘์‹œ๋ฅผ ๊ฐ€์žฅ ๋จผ์ € ๊บผ๋‚ผ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๊ณ  ๊ฐ€์žฅ ์•„๋ž˜์— ์žˆ๋Š” ์ ‘์‹œ๋Š” ๊ฐ€์žฅ ๋‚˜์ค‘์— ๊บผ๋‚ผ ์ˆ˜ ์žˆ๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค. ์Šคํƒ๋„ ์ด์™€ ๋™์ผํ•˜๋‹ค. ์Šคํƒ์€ ํ›„์ž…์„ ์ถœ LIFO(Last in First Out)์˜ ๊ตฌ์กฐ๋กœ ๊ฐ€์žฅ ๋‚˜์ค‘์— ๋“ค์–ด๊ฐ„ ์›์†Œ๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค. Stack์˜ ์—ฐ์‚ฐ push(data) pop() Stack์˜ ๊ตฌํ˜„ ์Šคํƒ์„ ๊ตฌํ˜„ ํ•  ๋•Œ๋Š” ๋ฐฐ์—ด๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜๋„ ์žˆ๊ณ , ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ(Linked List)๋ฅผ ์ด์šฉํ•ด ๊ตฌํ˜„ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ๋ฐฐ์—ด์„ ์ด์šฉํ•ด ๊ฐ„๋‹จํžˆ ๊ตฌํ˜„ํ•ด๋ณธ๋‹ค. #include #define STACK_SIZE 10 // ์Šคํƒ์˜ ์‚ฌ์ด์ฆˆ int stack[STACK_S..