본문/내용
[프로그래밍 과제] 명제 해석의 명제식을 표현하는 방법을 고안하고 그러한 식을 입력하여 이진 트리를 생성하는 C 함수를 작성하라. 또한 작성된 함수의 계산 시간을 구하라.
#include
#include
#include
#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,}; // 후위 표기식으로 저장하는 문자…