º»¹®/³»¿ë
[ÇÁ·Î±×·¡¹Ö °úÁ¦] ¸íÁ¦ ÇØ¼®ÀÇ ¸íÁ¦½ÄÀ» Ç¥ÇöÇÏ´Â ¹æ¹ýÀ» °í¾ÈÇÏ°í ±×·¯ÇÑ ½ÄÀ» ÀÔ·ÂÇÏ¿© ÀÌÁø Æ®¸®¸¦ »ý¼ºÇÏ´Â 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,}; // ÈÄÀ§ Ç¥±â½ÄÀ¸·Î ÀúÀåÇÏ´Â ¡¦(»ý·«)