c로 쓴 자료구조론 연습문제 5장(트리)
- 최초 등록일
- 2011.11.08
- 최종 저작일
- 2011.10
- 41페이지/
한컴오피스
- 가격 1,500원
![할인쿠폰받기](/images/v4/document/ico_det_coupon.gif)
소개글
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
c로 쓴 자료구조론
<이석호 저>
<교보문고>
연습문제 5장 풀이입니다.
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
목차
없음
본문내용
[프로그래밍 과제] 명제 해석의 명제식을 표현하는 방법을 고안하고 그러한 식을 입력하여 이진 트리를 생성하는 C 함수를 작성하라. 또한 작성된 함수의 계산 시간을 구하라.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define FALSE 0
#define TRUE 1
#define MAX_STACK_SIZE 100 // 최대 스택 사이즈
#define MAX_EXPR_SIZE 100 // 수식 최대 사이즈
// 부울 및 논리연산
typedef enum { false , true , and , or , rparen ,not, lparen ,eos } logical;
typedef struct _NODE* PNODE; // 노드포인터
typedef struct _NODE{ // 노드 구조체
PNODE left_child; // 왼쪽 자식 노드
logical data; // 데이터
short value; // 명제식 계산시 그 결과값이 들어간다.
PNODE right_child; // 오른쪽 자식 노드
} NODE ;
//////////////////////////////////////////////////////////////////////////
// Global Variable.
PNODE expr[MAX_EXPR_SIZE]; // 수식을 저장하는 문자배열.
PNODE stack[MAX_STACK_SIZE]; // 수식에 대한 스택
PNODE expr_post[MAX_EXPR_SIZE] = {0,}; // 후위 표기식으로 저장하는 문자열.
PNODE root = NULL; // 명제식의 루트 포인터.
// in-stack precedence
const int isp[] = { 0,0,2,3,4,5,0,0 };
// incoming precedence
const int icp[] = { 0,0,2,3,4,5,6,0 };
참고 자료
없음