📄 auto_machine.h
字号:
#pragma once
#include "state.h"
#include "State.h"
#include "set"
using namespace std;
class auto_machine
{
private:
list<State*>StateCollect;
public:
auto_machine(void);
~auto_machine(void);
void insert_map(State* HeadState, char InputChar, State* TailState);
void insert_state(State* StateNode);
bool inserted(State* &StateNode); //return 0:无此状态.
friend void CheckProgram(const auto_machine DFA, ifstream &program, ofstream &result);
private:
list<State*> EndState;
State* BeginState;
void _$closure(State* I, set<State*> &closure);
// 状态I通过输入字符InputChar所到状态
set<State*> _closure(State* I, char InputChar);
public:
void insert_endstate(State* endstate);
// 有穷自动机的确定化.
void NFA_TO_DFA(auto_machine &DFA);
private:
set<char> InCharColl;
public:
void insert_char(char Input);
private:
void CombineState(set<State*> StateCol, State* Combined);
void Define(set<State*> GenState, auto_machine *DFA, State* Combined );
public:
// DFA最小化
void Minimize(void);
void insert_beginstate(State* begin);
private:
set<char> DFAInCharColl;
public:
bool constinserted(State* state);
void Destroy(void);
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -