[์ž๋ฃŒ๊ตฌ์กฐ] 6. ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ์‘์šฉ

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

  • textsms

[์ž๋ฃŒ๊ตฌ์กฐ] 5. ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ

5์žฅ. ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ EX) C์–ธ์–ด ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘ ๊ตฌ์กฐ์ฒด ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น int a, *p_a; float b, *p_b; p_a = (int*)malloc(sizeof(int)); p_b = (float*)malloc(sizeof(float)); *p_a = 10; 1. ๋ฆฌ์ŠคํŠธ์˜ ๊ฐœ๋… โ— **๋…ผ๋ฆฌ์ ์ธ ์ˆœ์„œ์— ์˜ํ•ด ๊ฒฐ์ •๋œ ์›์†Œ๋“ค์˜ ๋‚˜์—ด → ๋ฌผ๋ฆฌ์ ์ธ ์ˆœ์„œ์™€ ๋ฌด๊ด€ํ•˜๊ฒŒ ๋…ผ๋ฆฌ์ ์ธ ์ˆœ์„œ๋งŒ ์œ ์ง€** 2. ๋ฐฐ์—ด์„ ์ด์šฉํ•œ ๋ฆฌ์ŠคํŠธ ๊ตฌํ˜„ ๋ฐฐ์—ด์„ ์ด์šฉํ•˜์—ฌ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ตฌํ˜„ํ•œ ์ž๋ฃŒํ˜• ๋ฐฐ์—ด๋กœ ๊ตฌ์„ฑํ•œ ๋ฆฌ์ŠคํŠธ ์ค‘๊ฐ„ ์ธ๋ฑ์Šค์— ์ž๋ฃŒ๊ฐ€ ์‚ฝ์ž…๋˜๋Š” ๊ฒฝ์šฐ ๋ฐฐ์—ด์„ ์ด์šฉํ•˜์—ฌ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜๋ฉด, ๋…ผ๋ฆฌ์ ์ธ ์ˆœ์„œ์™€ ํ•จ๊ป˜ ๋ฌผ๋ฆฌ์ ์ธ ์ˆœ์„œ ๋˜ํ•œ ์ผ์ •ํ•˜๊ฒŒ ์œ ์ง€ ๋œ๋‹ค. ์ด๋กœ ์ธํ•ด ์ค‘๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…์ด๋‚˜ ์‚ญ์ œํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ธด๋‹ค๋ฉด ๋’ค์˜ ์ธ๋ฑ์Šค ์ž๋ฃŒํ˜•๋“ค์˜ ๋ฌผ๋ฆฌ์  ๊ณต๊ฐ„..

  • textsms

[์ž๋ฃŒ๊ตฌ์กฐ] 4. ํ

4๊ฐ•. ํ 1. ํ์˜ ๊ฐœ๋… โญ **๊ฐ€์žฅ ๋จผ์ € ๋Œ€๊ธฐ ์ค„์— ๋“ค์–ด๊ฐ„ ์ž‘์—…์ด ๊ฐ€์žฅ ์ฒ˜์Œ์— ์ฒ˜๋ฆฌ๋˜๋Š” ์ž‘์—… (First-In-First-Out) ํ•œ ์ชฝ์—์„œ ์‚ญ์ œ, ๋‹ค๋ฅธ ํ•œ ์ชฝ์—์„œ ์‚ฝ์ž… ์—ฐ์‚ฐ์ด ๋ฐœ์ƒํ•œ๋‹ค.** queue ์˜ ์ž๋ฃŒ ์ž…์ถœ๋ ฅ 2. ํ์˜ ์ถ”์ƒ ์ž๋ฃŒํ˜• Queue Create_q(maxQueueSize) ํ์˜ ํฌ๊ธฐ๊ฐ€ maxStackSize์ธ ๋นˆ ํ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋ฐ˜ํ™˜ํ•œ๋‹ค. Boolean IsFull_q(queue, maxQueueSize) ํ์— ์ €์žฅ๋˜์–ด์žˆ ์ž๋ฃŒ์˜ ๊ฐฏ์ˆ˜๋ฅผ ํŒŒ์•…ํ•˜์—ฌ ์ €์žฅ๊ณต๊ฐ„์ด ๋‚จ์•„ ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. Queue Add_q(queue, item) ํ์— ์ €์žฅ๊ณต๊ฐ„์ด ์žˆ๋‹ค๋ฉด rear ์˜์—ญ์— item์„ ์‚ฝ์ž…ํ•œ๋‹ค. Boolean IsEmpty_q(queue) ํ์˜ front ํฌ์ธํ„ฐ์™€ rear ํฌ์ธํ„ฐ๊ฐ€ ๊ฐ™์€ ์ฃผ์†Œ๋ฅผ ๊ฐ€..

  • textsms
[์ž๋ฃŒ๊ตฌ์กฐ] 3. ์Šคํƒ

[์ž๋ฃŒ๊ตฌ์กฐ] 3. ์Šคํƒ

3๊ฐ•. ์Šคํƒ 1. ์Šคํƒ์˜ ๊ฐœ๋… ๐Ÿ’ก ๊ฐ์ฒด์™€ ๊ทธ ๊ฐ์ฒด๊ฐ€ ์ €์žฅ๋˜๋Š” ์ˆœ์„œ๋ฅผ ๊ธฐ์–ตํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๊ด€ํ•œ ์ถ”์ƒ ์ž๋ฃŒํ˜• ๊ฐ€์žฅ ๋‚˜์ค‘์— ๋“ค์–ด์˜จ ์ž๋ฃŒ๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ๋‚˜๊ฐ€๋Š” ํ˜•ํƒœ(LIFO, ํ›„์ž…์„ ์ถœ) TOP : ์Šคํƒ์—์„œ ๊ฐ€์žฅ ์ตœ๊ทผ์— ์‚ฝ์ž… ๋œ ์ž๋ฃŒ์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์ง€์นญ push : ์Šคํƒ์— ์ž๋ฃŒ ํ•˜๋‚˜๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ํ•จ์ˆ˜. ์Šคํƒ์˜ ์ €์žฅ๊ณต๊ฐ„์ด ์ถฉ๋ถ„ํ•œ์ง€ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค. pop : ์Šคํƒ์˜ ์ตœ์ƒ๋‹จ ์ž๋ฃŒํ˜•์„ ๋ฐ˜ํ™˜(์ œ๊ฑฐ) ํ•˜๋Š” ํ•จ์ˆ˜. ์Šคํƒ์— ๋ฐ์ดํ„ฐ๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค. 2. ์Šคํƒ์˜ ์ถ”์ƒ ์ž๋ฃŒํ˜• Stack CreateS(maxStackSize) ์Šคํƒ์˜ ํฌ๊ธฐ๊ฐ€ maxStackSize์ธ ๋นˆ ์Šคํƒ์„ ์ƒ์„ฑํ•˜๊ณ  ๋ฐ˜ํ™˜ํ•œ๋‹ค. Boolean IsFull(stack, maxStackSize) ์Šคํƒ์ด ๊ฐ€๋“ ์ฐผ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•œ๋‹ค. Stack Push(s..

  • textsms

[์ž๋ฃŒ๊ตฌ์กฐ] 2. ๋ฐฐ์—ด

1. ๋ฐฐ์—ด์˜ ์ •์˜ ๐Ÿ’ก ๋ฐฐ์—ด : ์ผ์ •ํ•œ ์ฐจ๋ก€์™€ ๊ฐ„๊ฒฉ์— ๋”ฐ๋ผ ๋ฒŒ์—ฌ ๋†“์€ ์ž๋ฃŒํ˜• 1.1 ๋ฐฐ์—ด์˜ ์ •์˜ ์ธ๋ฑ์Šค์™€ ์›์†Œ๊ฐ’(index, value) ์˜ ์Œ์œผ๋กœ ๊ตฌ์„ฑ๋œ ์ง‘ํ•ฉ์œผ๋กœ ์ •์˜๋œ ๊ฐ ์ธ๋ฑ์Šค๋Š” ๊ทธ ์ธ๋ฑ์Šค์™€ ๊ด€๋ จ๋œ ๊ฐ’์„ ๊ฐ€์ง„๋‹ค. 1.2 ๋ฐฐ์—ด์˜ ํŠน์„ฑ ์›์†Œ๋“ค์ด ๋ชจ๋‘ ๊ฐ™์€ ์ž๋ฃŒํ˜•, ์ฆ‰ ๋™์งˆ์˜ ๊ฐ’๊ณผ ๊ธฐ์–ต ๊ณต๊ฐ„์˜ ํฌ๊ธฐ๊ฐ€ ๊ฐ™๋‹ค. ๋ฐฐ์—ด์˜ ๊ฐ ์›์†Œ์˜ ๋ฌผ๋ฆฌ์ ์ธ ์œ„์น˜(๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ)์˜ ์ˆœ์„œ๊ฐ€ ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค ์ˆœ์„œ(๋…ผ๋ฆฌ์  ์ˆœ์„œ) ์™€ ์ผ์น˜ํ•œ๋‹ค. ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค ๊ฐ’์„ ์ด์šฉํ•ด์„œ ๋ฐฐ์—ด์˜ ์›์†Œ๊ฐ’์— ์ง์ ‘ ์ ‘๊ทผ(direct access) ํ•œ๋‹ค. → ๋ฐฐ์—ด์˜ ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ๋Š” ์‚ฌ๋žŒ(๊ฐœ๋ฐœ์ž)๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ์ •์˜ํ•œ (์ถ”์ƒํ™”) ๊ฐ’์ด๋‹ค. ๋ฐฐ์—ด์—์„œ ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ๋ฅผ ์•Œ๊ณ  ์žˆ์„ ๋•Œ ์›์†Œ๋ฅผ ์ฐพ์•„๋‚ด๋Š” ๋ฐฉ๋ฒ•์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ O(1)๋กœ ๋‘๋Š” ์ด์œ ์— ๋Œ€ํ•ด ๊ถ๊ธˆํ–ˆ์—ˆ๋Š”๋ฐ, ์ด๋Š” ๋ฐฐ์—ด..

  • textsms

[์ž๋ฃŒ๊ตฌ์กฐ] 1. ์ž๋ฃŒ๊ตฌ์กฐ๋ž€ ๋ฌด์—‡์ธ๊ฐ€

1. ์ž๋ฃŒ์™€ ์ •๋ณด์˜ ๊ด€๊ณ„์ž๋ฃŒ(Data)ํ˜„์‹ค ์„ธ๊ณ„์—์„œ ๊ด€์ฐฐ์ด๋‚˜ ์ธก์ •์„ ํ†ตํ•ด ์ˆ˜์ง‘๋œ ๊ฐ’(Value) ์ด๋‚˜ ์‚ฌ์‹ค(Fact). ์ •๋ณด(Information) ์ ์ ˆํ•œ ์˜์‚ฌ๊ฒฐ์ •(decision)์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ง€์‹(knowledge) ์œผ๋กœ์„œ, ์ž๋ฃŒ์˜ ์œ ํšจํ•œ ํ•ด์„ค(interpretation)์ด๋‚˜ ์ž๋ฃŒ ์ƒํ˜ธ๊ด€์˜ ๊ด€๊ณ„(relationship) ์„ ํ‘œํ˜„ํ•˜๋Š” ๋‚ด์šฉ ์ž๋ฃŒ ⇒ ์ฒ˜๋ฆฌ(์ปดํ“จํ„ฐ) ⇒ ์ •๋ณด I = P(D) 2. ์ถ”์ƒํ™”์˜ ๊ฐœ๋…์ถ”์ƒํ™”๊ณตํ†ต์ ์ธ ๊ฐœ๋…์„ ์ด์šฉํ•˜์—ฌ ๊ฐ™์€ ์ข…๋ฅ˜์˜ ๋‹ค์–‘ํ•œ ๊ฐ์ฒด๋ฅผ ์ •์˜ํ•˜๋Š” ๊ฒƒ 3. ์ž๋ฃŒ๊ตฌ์กฐ์˜ ๊ฐœ๋…์ž๋ฃŒ๊ตฌ์กฐ(Data Structure) ๋ž€?์ž๋ฃŒ ์‚ฌ์ด์˜ ๋…ผ๋ฆฌ์  ๊ด€๊ณ„๋ฅผ ์ปดํ“จํ„ฐ๋‚˜ ํ”„๋กœ๊ทธ๋žจ์— ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์‹ค์‹œํ•˜๋Š” ์ž๋ฃŒ์˜ ์ถ”์ƒํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์ปดํ“จํ„ฐ๊ฐ€ ์–ด๋–ค ์ˆ˜ํ–‰์„ ์‹ค์‹œํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋ช…๋ น์˜ ์ง‘ํ•ฉ ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ์™€ ..

  • textsms