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

  • 등록일 / 수정일
  • 페이지 / 형식
  • 자료평가
  • 구매가격
  • 2007.11.07 / 2019.12.24
  • 5페이지 / fileicon zip (압축파일)
  • 평가한 분이 없습니다. (구매금액의 3%지급)
  • 1,200원
다운로드장바구니
Naver Naver로그인 Kakao Kakao로그인
[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 : ");
}
}

}
자료평가
    아직 평가한 내용이 없습니다.
회원 추천자료
  • 영어문법정리 레포트
  • 수식하는 용법.* I found an empty box.* He was awake all the night. (2형식)* I found the cage empty.(서술용법; 5형식)* I found the empty cage. (한정용법)형용사가 주격보어나 목적격보어로 쓰이는 경우를 형용사의 서술적 용법이라 한다.한정용법에만 쓰이는 형용사* an inner pocket : 안주머니. * a woolen goods : 모직물.* the outer world : 외부세계. * a woolen box : 나무상자.* the former case : 전자의 경우. * a golden saying : 금언.* the upper lip : 윗입술. * a lone traveller : 외로운 나그네.* drunk

  • [영어 문법]영어숙어
  • 수식하는 용법.* I found an empty box.* He was awake all the night. (2형식)* I found the cage empty.(서술용법; 5형식)* I found the empty cage. (한정용법)◇형용사가 주격보어나 목적격보어로 쓰이는 경우를 형용사의 서술적 용법이라 한다.◇한정용법에만 쓰이는 형용사* an inner pocket : 안주머니. * a woolen goods : 모직물.* the outer world : 외부세계. * a woolen box : 나무상자.* the former case : 전자의 경우. * a golden saying : 금언.* the upper lip : 윗입술. * a lone traveller : 외로운 나그네.*

  • 채동번의 5대역사소설 오대사통속연의 5회 6회 한문 및 한글번역
  • 나무로 뗏목을 묶는 일이어 양나라 군영 정탐 군졸을 얻어 과연 왕경인은 병사에게 뗏목을 엮게 되어 많이 부교를 만들어 병사 진격에 편하게 했다.存勖始稱德威先見, 獎勞有加, 時已爲梁開平四年冬季, 兩軍休兵不戰。존욱시칭덕위선견 장로유가 시이위양개평사년동계 양군휴병부전jiǎng láo ㄐㄧㄤˇ ㄌㄠˊ 奖劳:奖其劳绩이존욱은 비로소 주덕위에게 먼저 보게 하여 공적을 장려하여 시기가 이미 양나라 개원 4년 겨울로 양군이 병사를 휴식하고

  • 나관중 삼국지연의 1,2 번역 해석 한문 원문
  • 이용하여 내분이 일어나게 만들어 이들을 자멸시켰다. 후에 끊이지 않는 싸움으로 황제가 괴로워하자 이를 보다 못해 병으로 죽은 충신이었다. 對壘 壘(진, 성채 루용; ⼟-총18획; lěi)。汝可引本部人馬,我更助汝一千官軍,前去穎州 지금의 안휘성 부양阜陽打探 打探 : 탐문하다. 알아보다. 消息,約期剿 剿(노곤할, 괴롭히다 초; ⼑-총13획; jiǎo,chāo,chāo)捕。”식위현덕왈 아금위적재차 적제장량 장보재영주 여황보숭 주준대루 여가인본부인

  • [공사] [공사] 한국수력공사 기출문제 수정본
  • 이용자들의 지식에 기반한 검색 엔진 등을 개발하고 있다. 이 밖에 TV와 인터넷의 장점을 합친 `주스트(Joost)`, 이용자들의 평가와 인기 에 근거해 영상의 순위를 매기는 `메타카페(Metacafe`s)` 등도 웹2.0 시대를 맞아 새롭게 뜰 차세대 인터넷 기업으로 꼽혔다. 19. 3차원 가상현실 사이트 세컨드 라이프에 사이버 대사관을 개설한 나라 : 스웨덴 21. 17대 대통령 선거일 : 12월 19일 18대 국회의원 선거는 2008년 4월 9일입니다.22. 8대 UN 사무총장 : 반기문 반

오늘 본 자료 더보기
  • 오늘 본 자료가 없습니다.
  • 저작권 관련 사항 정보 및 게시물 내용의 진실성에 대하여 레포트샵은 보증하지 아니하며, 해당 정보 및 게시물의 저작권과 기타 법적 책임은 자료 등록자에게 있습니다. 위 정보 및 게시물 내용의 불법적 이용, 무단 전재·배포는 금지됩니다. 저작권침해, 명예훼손 등 분쟁요소 발견시 고객센터에 신고해 주시기 바랍니다.
    사업자등록번호 220-06-55095 대표.신현웅 주소.서울시 서초구 방배로10길 18, 402호 대표전화.02-539-9392
    개인정보책임자.박정아 통신판매업신고번호 제2017-서울서초-1806호 이메일 help@reportshop.co.kr
    copyright (c) 2003 reoprtshop. steel All reserved.