검색어 입력폼
평가점수D

정규수식 -> NFA -> DFA -> Minimum State DFA

저작시기 2006.10 |등록일 2007.03.25 파일확장자C언어 (c) | 가격 1,200원

소개글

a, b로 이루어진 정규수식을 NFA Table -> DFA Table ->Minimum State DFA Table로 바꾸는 프로그램입니다. 끝에 Accept Test도 있습니다.

컴파일 실행환경

Microsoft Visual C++로 제작되었습니다.

본문내용

#define Max_char 100 // 정규수식의 길이

// 데이터 형 선언
typedef enum {True = 1, False = 0} Bool;

typedef struct state* State; // 스테이스 상태 저장
struct state
{
int q; //스테이트
int s; // output
State a; // P(a)
State b; // p(b)
State e1; // a 다중 스테이트 연결
State e2; // b 다중 스테이트 연결
State f; // 마지막 state 표시
State C; // 전체 스테이트 연결
};

typedef struct s_data* S_data; //NFA 스테이트 정보를 묶는 자료형
struct s_data
{
State s;
S_data next;
S_data C;
};

typedef struct d_state* D_state; //DFA state 상태 저장
struct d_state
{
int q;
int s;
D_state a;
D_state b;
D_state C;
S_data t;
};

typedef struct d_data* D_data; //DFA 스테이트 정보를 묶는 자료형
struct d_data
{
D_state s;
D_data next;
D_data C;
};

typedef struct m_state* M_state; //Minimum state 상태 저장
struct m_state
{
int q;
int s;
M_state a;
M_state b;
M_state C;
D_data t;
};

State F_FA = 0; //전체 NFA state 포인터
D_state D_FA = 0; //전체 DFA 마지막을 가리키는 포인터
D_state D_eFA = 0; //전체 DFA First 포인터
S_data sdata = 0; //전체 Sdata 포인터
M_state M_FA = 0; //전체 Minimum State 포인터
D_data ddata = 0; //전체 Ddata 포인터

typedef struct s_stack* S_stack ; // state 스택
struct s_stack
{
State data;
S_stack next;
};

참고 자료

없음
다운로드 맨위로