본문 바로가기

카테고리 없음

6주차 스택 기본 소스



// stack.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다.
//

#include "stdafx.h"
#define MAX 10

static int pos;  //현재 스택에서 가장 최상위 부분을 가르키는 변수


int isFull(){
 //이 아래부터 소스를 작성하세요.
 //pos와 MAX를 적당히 이용해서 구현하세요.
}

int isEmpty(){
 //이 아래부터 소스를 작성하세요.
 //posX를 적당히 이용해서 구현하세요.
}

int pop(){
 if(!isEmpty())
  return 0;

 //이 아래부터 소스를 작성하세요.
 //스택의 최상위 부분을 pop합니다. 즉 stack[pos]에 입력받은 값을 출력하고 지우도록 합니다.
 //이 함수의 매개변수를 적당히 입력하세요.

}

int push(){
 if(!isFull())
  return pos;
 
 //이 아래부터 소스를 작성하세요.
 //스택의 최상위 부분에 value를 push합니다. 즉 stack[pos]에 입력받은 값을 넣도록 합니다.
 //이 함수의 매개변수를 적당히 입력하세요.

}

int _tmain(int argc, _TCHAR* argv[])
{
 int stack[MAX];  //스택
 int value, sel;  //value : 스택에 입력할 값, sel : 프로그램 메뉴 번호 저장

 while(1){
 
  printf("메뉴를 선택하세요.\n");
  printf("1. push     2.pop     3.목록보기     4.종료\n");
  printf(": ");
  scanf("%d", &sel);

  //push
  if(sel == 1){
   printf("push 추가할 값을 넣으세요 : ");
   scanf("%d", &value);
   pos = push(value);
 
  }
  //pop
  else if(sel == 2){
   printf("pop\n");
   pos = pop();
  }
  //스택 내용 출력
  else if(sel == 3){
   printf("목록보기\n");
   for(int i = 0 ; i < MAX; i++)
    printf("%d\n", stack[i]);
  }
  //프로그램 종료
  else if(sel == 4){
   printf("종료합니다.");
   return 0;
  }
  else{
   printf("잘못 선택하셨습니다.\n");
  }

 }

 return 0;
}