본문 바로가기

- Programming/- 자료구조

★ 9. 배열을 이용한 스택 구현하기

반응형

배열을 이용한 스택 구현



// # 배열을 이용한 스택 #

#include <iostream>

using namespace std;


// # 배열 크기 #
#define MAX_STACK_SIZE 5
typedef int element;


// # 스택에 원소를 저장하기 위한 배열 #
element stack[MAX_STACK_SIZE];


// # TOP의 위치 #
int top = -1; // # 처음엔 맨 아래를 위치하기 때문에 '-1' #


// # 스택 초기화 함수 #
void initialize()
{
 // # TOP 인덱스를 -1로 주어 스택을 비움 #
 top = -1;
}


// # 스택이 비어 있으면 true 아니면 false를 반환 #
int isEmpty()
{
 // # TOP 인덱스가 -1이면 true #
 return (top == -1);
}


// # 스택이 가득 차 있으면 true 아니면 false를 반환 #
int isFull()
{
 return (top == (MAX_STACK_SIZE - 1));
}


// # 스택의 TOP에 원소를 삽입 #
void push(element item)
{
 // # 스택이 가득 차있는지를 확인 #
 if (isFull())
 {
  cout << "스택 가득 참" << endl;
 }
 else
 {
  // # TOP 인덱스를 증가시킨 후 현재 TOP에 원소 삽입 #
  stack[++top] = item;
 }
}


// # 스택의 TOP에서 원소를 삭제 #
element pop()
{
 // # 스택이 비었는지를 확인한다 #
 if (isEmpty())
 {
  cout << "스택 비어 있음" << endl;
 }
 else
 {
  // # 현재 TOP에서 원소를 삭제한 후 TOP 인덱스를 감소시킴 #
  return stack[top--];
 }
}

void main()
{
 push('A');
 push('B');
 push('C');
 push('D');
 push('E');

 while (isEmpty() == false)
 {
  printf("%c\t", pop());
 }

 getchar();
}

반응형