레포트샵

fileicon[C언어] 수식나무를 이용한 후위식 계산기

이전

  • icon

다음

  • 최대 100페이지까지 확대보기 서비스를 제공합니다.

> 레포트 > 공학계열 > 자료상세보기 (자료번호:181045)

구매가격
1,200원 할인쿠폰1,080원
등록/수정
2007.11.07 / 2007.11.08
파일형식
fileiconzip(압축파일) [무료뷰어다운]
페이지수
5페이지
자료평가
평가한 분이 없습니다.
등록자
lhil008
  • 다운로드
  • 장바구니 담기

닫기

이전큰이미지 다음큰이미지
  • 트위터
  • 페이스북
신규가입 200원 적립! + 10% 할인쿠폰 3장지급! banner구매자료를 평가하면 현금처럼 3%지급!

parsetree postfix에 대한 추천연관자료

더보기

소개글

[C언어] 수식나무를 이용한 후위식 계산기에 대한 자료입니다.

목차

#define MAX 10 /*최대 숫자크기*/
#define MAXEXP 100 /*식의 최대 크기*/

typedef struct _stack *stptr; // 스택 선언
typedef struct _node *nodeptr; // 트리의 노드 선언

typedef struct _node { // 트리의 노드
char exp[MAX]; // 노드의 데이터
nodeptr LeftChild; // 왼쪽 자식
nodeptr RightChild; // 오른쪽 자식
}node;

typedef struct _stack {
node *key; // 스택의 키
stptr next; // 스택의 포인터
}stack;

stack *head, *tail; // 스택의 헤드 및 테일

void Get_postfix(char *s); // 후위식을 받아오는 함수.
node *Get_parsetree(char *p); // 수식나무를 생성하는 함수.
void printf_infix(node *t); // 수식나무를 통해 중위식을 출력하는 함수.
void Push_parenthesis(); // 중위식 출력때 쓰일 괄호를 스택에 넣어주는 함수.
void visit(char *s); // 노드를 방문하는 함수.

int is_operator(int k); // 연산자를 확인하는 함수.
int precedence(int op); // 우선순위를 확인하는 함수.
void init_stack(); // 스택을 생성하는 함수.
node *push(node *k); // 스택에 데이터를 넣는 함수.
node *pop(); // 스택의 데이터를 빼는 함수.

int Check_exp(char *s); // 후위식이 올바른지 확인하는 함수.
int is_legal(char *s); // 후위식의 형식이 올바른지 확인하는 함수.

본문내용

int main()
{
node *tree, *p; // 수식트리를 생성할 변수 및 스택 버퍼.
char exp[MAXEXP]; // 후위식을 받아올 변수

tree = (node *)malloc(sizeof(node));
init_stack();

printf("\nInput a postfix expression : ");
Get_postfix(exp); // 후위식 받아옴.
tree = Get_parsetree(exp); // 트리를 생성.
printf("\nThe infix expression : ");
while((pop()) != NULL); // 스택 정리.
printf_infix(tree); // 중위식 출력.
while((p = pop()) != NULL) printf("%c", p->exp[0]);
printf("\n\n");
}

void Get_postfix(char *s)
{
///////////////////////////////////////////////////////////////////////////
/*파라미터로 받아온 문자열 변수에 후위식을 받아오는 함수. scanf를 이용하여/
/ 후위식을 받아온 후 check_exp함수를 이용하여 형식이 올바른지 검사한다. */
///////////////////////////////////////////////////////////////////////////

char temp;

while(1){
int i = 0;
while(1){ // 후위식을 받아오는 부분.
scanf("%c", &temp);
if(temp != '\n') { s[i++] = temp;}
else { s[i] = 0; break; }
}
if(Check_exp(s)) break; // 형식이 올바르면 함수 종료.
else { // 올바르지 않은 형식이 입력된 경우 다시 받아온다.
printf("wrong command. try again.\n");
printf("\nInput a postfix expression : ");
}
}

}

태그 parsetree, postfix, 후위식계산기, 수식나무, 후위식검사

자료평가

아직 평가한 내용이 없습니다.

오늘 본 자료

  • 오늘 본 자료가 없습니다.
  • img

    저작권 관련 사항 정보 및 게시물 내용의 진실성에 대하여 레포트샵은 보증하지 아니하 며, 해당 정보 및 게시물의 저작권과 기타 법적 책임은 자료 등록자에게 있습니다. 위 정보 및 게시물 내용의 불법적 이용, 무단 전재·배포는 금지됩니다. 저작권침해, 명예훼손 등 분쟁요소 발견시 고객 센터에 신고해 주시기 바랍니다.