[자료구조] post&prefix
- 최초 등록일
- 2003.05.28
- 최종 저작일
- 2003.05
- 7페이지/ 한컴오피스
- 가격 1,000원
소개글
자료구조 수업시간에 했던 프로젝트입니다.
일반책에는 postfix만 나와있는데 prefix기능을 막강 구현했습니다.
일반자료구조에 나와있는 postfix에 prefix기능을 첨부한 프로그램 스택과 큐를 이용하여 완벽한 프로그램 구현
precedence get_token(char *symbol, int *n){
*symbol = expr[(*n)++];
/* error code : (a-z)이외의 수를 잡아낸다. */
if(*symbol=='(' || *symbol==')' || *symbol=='+' || *symbol=='-' || *symbol=='/' || *symbol=='*' \
|| *symbol=='%' || ('a'<=*symbol && *symbol<='z') || ('0'<=*symbol && *symbol<='9') || *symbol=='\0');
else{
printf("\nillegal String input, reInput please!\n");
exit(1);
}
switch(*symbol){
case '(' : return lparen;
case ')' : return rparen;
case '+' : return plus;
case '-' : return minus;
case '/' : return divide;
case '*' : return times;
case '%' : return mode;
case '\0' : return eos;
default : return operand;
}
}
목차
프로그램 설명
source code
본문내용
▶ 프로그램 설명
이 프로그램은 infix수식을 입력받아서 만약 모든 operand가 숫자이면 연산을 행하고 아니면 postfix와 prefix 수식을 출력하는 것이다. 간과하지 말아야 할 점은 에러코드다. 입력 operand중 알파벳 (a∼z), 숫자 0∼9999 값이다. 이 범위를 벗어나면 에러메시지를 출력케 하였다. 사용된 stack는 우선 infix를 postfix수식과 prefix수식으로 고쳐주는 stack 1개와 고쳐진 수식을 계산(eval)하는 stack_1 두 개를 사용하였다. 데이터 입력방식은 expr이라는 문자열을 입력받아 operand와 operator을 구분하여 2차원배열 expr_1에 저장하였다.
다음은 123+456이 입력됐을 때 expr_1의 상태를 보여준다.
참고 자료
자료구조