정규수식 -> NFA -> DFA -> Minimum State DFA
- 최초 등록일
- 2007.03.25
- 최종 저작일
- 2006.10
- C언어
- 가격 1,500원
소개글
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;
};
참고 자료
없음