[자료구조] 인픽스(Infix)를 포스트픽스(postfix)로 변환 후 연산(두자리이상,음수,산술,관계,비트,논리연산등을 지원)

등록일 2003.11.15 한글 (hwp) | 7페이지 | 가격 1,000원

소개글

그대로 복사하셔서 컴파일 후 실행하시면 됩니다.

목차

두자리수이상과 음수도 가능하며 각종 다양한 연산과 출력이 출력 가능하다

본문내용

#define MAX_STACK_SIZE 100//매크로로 크기 지정
#define MAX_EXPR_SIZE 100

typedef enum {lparen,rparen,plus,minus,times,divide,mod,lnot,and,or,lb,lbs,rbs,
rb,not,same,comp,band,bor,bexor,eos,operand} precedence;
//열거 타입을 사용하여 각각의 우선순위를 주기 위해 정렬한다

int stack[MAX_STACK_SIZE];//스택의 최대 크기 (입력시 사용)
precedence pstack[MAX_STACK_SIZE];//열거타입 스택의 최대 크기 (츌력시 사용)
char expr[MAX_EXPR_SIZE];//연산을 위한 문자배열
char pexpr[MAX_EXPR_SIZE];//출력을 위한 문자 배열
char num[MAX_EXPR_SIZE];//입력받을 infix
int value[10];//2자리 이상의 연산을 위한 전역 변수

//해당 연산자에대한 우선순위를 정해준다
static int isp[]={0,19,12,12,13,13,13,15,5,4,10,10,10,10,9,9,15,8,6,7,0};
static int icp[]={20,19,12,12,13,13,13,15,5,4,10,10,10,10,9,9,15,8,6,7,0};

void add(int *top,int item);//계산할때 스택에 추가 (숫자가 스택에 쌓인다)
int del(int *top);//계산할때 스택에서 삭제
void padd(int *top,precedence item);//출력시 스택에 추가 (연산자가 스택에 쌓인다)
int calc();//계산하는 함수
precedence pdel(int *top);//출력시 스택에 삭제
precedence get_token(char *symbol, int *n);//토큰으로 구별 한다
void postfix();//postfix로 전환하는 함수
char print_token(precedence token);//출력시 토큰으로 구별
void convert();//숫자 변환
void convertchar(int i,int j);//2자리수 이상의 문자 변환

참고 자료

Data structure in C 이석호(역)
      최근 구매한 회원 학교정보 보기
      1. 최근 2주간 다운받은 회원수와 학교정보이며
         구매한 본인의 구매정보도 함께 표시됩니다.
      2. 매시 정각마다 업데이트 됩니다. (02:00 ~ 21:00)
      3. 구매자의 학교정보가 없는 경우 기타로 표시됩니다.
      최근 본 자료더보기
      추천도서