๐ก ์ด๋ฒ์๋ ํ๋ฅผ ์ด์ฉํ์ฌ ๋ฐฐ์ด ๊ธฐ๋ฐ ํ ์ฝ์ ๋ฐ ์ญ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์๋ณด์๋ค.
๋ฌธ์
๐ก ํ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด [7, 5, 4, 6]์ ๋ง๋ค๊ณ [4, 6] ๊ฒฐ๊ณผ๋ฅผ ๋์ถํ์์ค.
๋น์ฐํ ์๋ ๋ฌธ์ ๊ธฐ์ ๋์ถฉ ๋ด๊ฐ ๋ง๋ค์๋ค.
ํด๋ต
#include <stdio.h>
#define SIZE 10000
#define INF 99999999
int queue[SIZE];
int front = 0; // ์
int rear = 0; // ๋ค
void push(int data) {
if (rear >= SIZE) {
printf("ํ ์ค๋ฒํ๋ก์ฐ๊ฐ ๋ฐ์ํ์ต๋๋ค.\\n");
return;
}
queue[rear++] = data;
}
int pop() {
if (front == rear) {
printf("ํ ์ธ๋ํ๋ก์ฐ๊ฐ ๋ฐ์ํ์ต๋๋ค.\\n");
return -INF;
}
return queue[front++];
}
void show() {
printf("--- ํ์ ์ ---\\n");
for (int i = front ; i < rear ; i++) {
printf("%d\\n", queue[i]);
}
printf("--- ํ์ ๋ค ---\\n");
}
int main(void) {
push(7);
push(5);
push(4);
pop();
push(6);
pop();
show();
}
์ค๋ช
ํ๋ ์ ์ ์ ์ถ์ ์๋ฃ๊ตฌ์กฐ์ด๋ค.
์ด๋ฌํ ํน์ฑ ๋๋ฌธ์ ์ค์ผ์ค๋ง, ํ์ ์๊ณ ๋ฆฌ์ฆ ๋ฑ์์ ๋ค๋ฐฉ๋ฉด์์ ํ์ฉ๋๋ค.
๋ฐฐ์ด ๊ธฐ๋ฐ ์คํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ๊ณต๋ถํ์ ๋ ์ฒ๋ผ ๋ฐฐ์ด ๊ธฐ๋ฐ์ SIZE๋ฅผ ๋ฏธ๋ฆฌ ํ ๋นํด์ฃผ์ด์ผ ๋๊ธฐ ๋๋ฌธ์ ๋ฉ๋ชจ๋ฆฌ์ ๊ด์ ์์ ์ข์ง ์๋ค๊ณ ํ ์ ์๋ค.
Stack๊ณผ ๋ค๋ฅด๊ฒ ์ฝ๋ ๋์ด๋๋ ๋ฎ๋ค๊ณ ํ ์ ์๊ธฐ ๋๋ฌธ์ ํด๋ต๋ง์ ๋ณด์๋ ์ดํด๊ฐ ์ ๋ ๊ฒ์ด๋ค.
๋ง์น๋ฉฐ..
์ญ์ ๋ฐฐ์ด ๊ธฐ๋ฐ ์ฝ๋๊ฐ ์ฝ๊ธฐ๋ ์ฝ๊ณ ์น๊ธฐ๋ ์ฝ๊ธด ํ ๊ฒ ๊ฐ๋ค.
๊ทธ๋๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํญ์ ์ ๊ฒฝ์จ์ผ ํ๋ ๋ฐฑ์ค๋๋ ํฌ์ธํฐ ๊ธฐ๋ฐ ์๋ฃ๊ตฌ์กฐ์ ๋ํด์๋ ์ ์์์ผ๊ฒ ๋ค๊ณ ์๊ฐ์ด ๋ ๋ค.
๋ค์ ํฌ์คํ ์ ํฌ์ธํฐ ๊ธฐ๋ฐ ํ ์๋ฃ๊ตฌ์กฐ์ ๋ํด ํฌ์คํ ํ ์์ ์ด๋ค.