# 배열을 이용한 스택
ArrayStack.cpp
ArrayStack.cpp
Is_empty | 스택이 비어있는지 검사한다 |
Is_full | 스택이 가득찼는가를 검사한다 |
Push | 스택의 맨 위에 요소를 추가한다 |
Pop | 스택의 맨 위에 있는 요소를 삭제한다 |
Peek | 스택의 맨 위에 있는 요소를 삭제하지 않고 반환한다 |
#include <stdio.h>
#define MAX_SIZE 100
typedefstruct STACK
{
int data[MAX_SIZE];
int top;
}STACK;
void Init(STACK *p)
{
p->top=-1;
}
int Is_empty(STACK *p)
{
return (p->top == -1);
}
int Is_full(STACK *p)
{
return (p->top == (MAX_SIZE-1));
}
void Push(STACK *p,int data)
{
if(Is_full(p))
{
printf("스택이 꽉찼습니다\n"); return ;
}
else
{
p->top++;
p->data[p->top]=data;
}
}
int Pop(STACK *p)
{
if(Is_empty(p))
{
printf("스택이 비어있습니다\n");
return -1;
}
return p->data[(p->top)--];
}
int Peek(STACK *p)
{
if(Is_empty(p))
{
printf("스택이 비어있습니다\n");
return -1;
}
return p->data[p->top];
}
int main()
{
STACK s;
int i;
Init(&s);
printf("현재 스택의 공간 비어있는가? %c\n",(Is_empty(&s) ? 'Y' : 'N'));
for(i=0;i<10;i++)
{
printf("Push : %d\n",i);
Push(&s,i);
}
for(i=0;i<10;i++)
printf("Pop : %d\n",Pop(&s));
printf("현재 top의 위치는? %d\n",Peek(&s));
}
'컴퓨터 기술 > 자료구조' 카테고리의 다른 글
자료구조 :: 스택(3) 배열 스택을 이용한 괄호검사 (0) | 2010.06.22 |
---|---|
자료구조 :: 스택(2) 연결리스트를 이용한 스택 (0) | 2010.06.22 |
자료구조 :: 리스트(5) 연결리스트를 이용한 다항식 (0) | 2010.06.22 |
자료구조 :: 리스트(4) 이중 연결리스트 (0) | 2010.06.21 |
자료구조 :: 리스트(3) 원형 연결리스트 (0) | 2010.06.21 |
댓글 로드 중…