티스토리 뷰
#include <stdio.h>
#include <stdlib.h>
#define MAXSTACK 5
struct stack
{
int item[MAXSTACK];
int top;
};
void push(struct stack *s1, int x);
int pop(struct stack *s1);
void main()
{
struct stack s1;
int select, data;
s1.top = -1;
do
{
printf("\n ***********************************\n");
printf("* 1. push(스택에 데이터 삽입) 선택 *\n");
printf("* 2. pop(스택에서 데이터 추출) 선택 *\n");
printf("* 3. 스택 종료 *\n");
printf("\n ***********************************\n");
printf("메뉴를 선택하세요 (1,2,3,)");
scanf("%d",&select);
if(select == 1)
{
printf("삽입할 데이터를 입력하세요 ? ");
scanf("%d", &data);
push(&s1, data);
}
else if(select == 2)
{
printf("스택에서 꺼낸 데이터 = %d \n",pop(&s1));
}
}while(select != 3);
}
void push(struct stack *s1, int x)
{
if(s1->top == MAXSTACK-1) // s1의 top이 99라면 (꽉 찼다면)
{
printf("스택이 가득 찼습니다"); // 안내문 출력
exit(1); // 종료
}
s1->item[++s1->top]=x; //s1의 item 배열에 s1의 top을 먼저 증가 시키고 x값 저장
}
int pop(struct stack *s1)
{
int popdata; // 데이터를 저장할 popdata를 선언
if(s1->top == -1) // s1의 top이 -1이라면 (비었다면)
{
printf("스택이 비어있습니다"); // 안내문 출력
exit(1); // 종료
}
popdata = s1->item[s1->top--]; // s1의 item배열의 s1의 top이 가리키는 자리의 데이터를 popdata에 저장하고 top을 감소
return(popdata); // 받은 데이터를 리턴
}
1,2,3,4,5 입력후 데이터를 출력했을때의 모습. 5,4,3,2,1로 출력
'Programming? > C++' 카테고리의 다른 글
[C] 정수형 퀵정렬 (0) | 2012.06.10 |
---|---|
[C] 큐 (0) | 2012.06.10 |
[C] 초간단 계산기 (0) | 2012.06.10 |
[C] 배열 최대값 프로그램(5개 입력) (0) | 2012.06.10 |
[C] 배열 최대,최소값(범위지정) (0) | 2012.06.10 |
- Total
- Today
- Yesterday
- PS VITA
- spring
- java
- Unleashed
- DnF_카인
- 이건사야되!
- 무사헌터G
- HTML
- PSP
- 포세리앙 시밤...
- GOD EATER2
- C Programming
- oracle
- Talesweaver_Palshu
- jsp
- League of legends
- XML
- Android
- jdbc
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |