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