[c언어]##나무 수식구조(전위, 중위, 후위)입니다.
- 최초 등록일
- 2006.12.07
- 최종 저작일
- 2006.12
- C언어
- 가격 3,000원
소개글
나무 수식 구조입니다.
컴퓨터 수학에서 이용되는 전위, 중위, 후위 표기법의 수식을 입력받아
각각 전위(prefix), 중위(infix), 후위(postfix) 표기법으로 출력하여 줍니다.
사용자가 입력할 방법을 전, 중, 후위 각각 무엇으로 할지 선택할 수 있으며
결과물은 세가지 방법으로 모두 출력됩니다.
단, 중위 입력시에는 평소 수학식에 사용되는 괄호를 넣어야 합니다.
VC++ 에서 작성했으며, 총 라인 300 줄 가량입니다.
참고.
중위 표기법으로 (((A+B)*(C-D))/E)+(F*G)
입력시
전위 : +/*+AB-CDE*FG
중위 : A+B*C-D/E+F*G
후위 : AB+CD-*E/FG*+
이런 식으로, 영어로 출력결과가 나옵니다.
오류는 없으며, 총 수식 50 문자까지 입력 가능합니다.^^
컴파일 실행환경
WIN XP, VC++
본문내용
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
typedef struct _tree{
char data;
struct _tree * left;
struct _tree * right;
struct _tree * prev;
}tree;
tree* root;//뿌리 노드
tree* news;//새 노드
tree* cur;//커서
tree * stack[50];
int pi=0; //stack 검색용
//입력 부분
void preinput(char arr[], int len)//전위표기법 입력
{
int i=0;
root->data = arr[i++];//맨 첫 루트에 첫 문자 집어넣기.
//전위표기법으로 입력받기 시작
while(i<len)
{
if(arr[i] == `\n`)
{
printf("프로그램 종료\n");
exit(0);
}
news = (tree*)malloc(sizeof(tree)); //새 공간 생성.
news->left = NULL;
news->right = NULL;
news->data = arr[i];
switch(arr[i])
참고 자료
없음