중위표기식을 후위표기식으로 변환
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
해당 자료는 7페이지 까지만 미리보기를 제공합니다.
7페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

중위표기식을 후위표기식으로 변환에 대한 보고서 자료입니다.

목차

infix -> postfix 변환 소스

본문내용

infix notation을 postfix notation으로 변환하는 소스입니다.
두 가지 버전입니다. 둘다 파일로 입력을 받을수 있고 직접 입력을
받을 수도 있습니다.
틀린점은 처음거는 숫자를 한자리라 가정하고 입력받은 infix notation
을 postfix notation으로 변환하고 결과값을 계산하여 출력하는 소스입
니다.
두번째거는 숫자가 아닌 변수도 가능합니다. 한자리가 아닌 예를들어
sum이라는 문자도 가능합니다. infix notation으로 입력받은 식을
postfix notation으로 변환하고 각 토큰을 공백으로 구분하여 출력
합니다. 또한 여기서는 입력사이에 공백이 들어가도 상관없습니다.
소스에 주석있으니깐 그리 어렵지만은 않으실겁니다.


//------------------------------
//notation1.txt 파일이 소스파일과 같은경로에 있어야 함



#include
#include //exit(1)
#include //strcpy, strcat

#define MAX_STACK_SIZE 100 //스택의 최대크기
#define MAX_EXPR_SIZE 100 //수식의 최대크기

typedef enum {
lparen, rparen, plus, minus, times, divide, mod, eos, assignment, operand
} precedence;

int stack[MAX_STACK_SIZE];
char expr[MAX_EXPR_SIZE];
precedence pstack[MAX_STACK_SIZE];
char temp[MAX_EXPR_SIZE];

//isp(in-stack precedence) icp(incoming precedence)
static int isp[] = {0, 19, 12, 12, 13, 13, 13, 0, 1}; //왼쪽괄호 stack안에선 0
static int icp[] = {20, 19, 12, 12, 13, 13, 13, 0, 1}; //stack밖에선 20

void add(int *top, int item); //스택에 삽입
void padd(int *top, precedence item); //pstack에 삽입
int del(int *top); //스택에서 삭제
precedence pdel(int *top); //pstack 에서 삭제
precedence get_token(char *symbol, int *n); //문자를 토큰으로
int eval(void); //후위표기식 계산
char print_token(precedence token); //토큰을 문자로 표시
void postfix(void); //중위표기를 후위표기로
void file_in(void);
void direct_in(void);
  • 가격2,000
  • 페이지수20페이지
  • 등록일2006.07.10
  • 저작시기2006.6
  • 파일형식압축파일(zip)
  • 자료번호#358325
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니