C++编程试题,跪请高手帮忙(3)

来源:百度知道 编辑:UC知道 时间:2024/06/14 04:48:52
3、 定义类描述有限状态自动机,状态的输入和输出关系可以描述为链表数据成员:
class STATE;
class LIST{
LIST *next;
char input;
STATE *output;
LIST(char in, STATE *out); //私有,仅供STATE使用
~LIST();
friend STATE;
}
class STATE{
char *name ;//状态名
LIST *list; //输入及输出列表
static STATE *error;//自动机陷阱
public:
void enlist (char in, STATE *out);//插入list
const STATE *next(char in) const; //输入in转移到下一个状态
const STATE start (char)const;//启动有限自动机
STATE(char *name);
~STATE();
}

//定义类描述有限状态自动机,状态的输入和输出关系可以描述为链表数据成员:

class STATE;

class LIST
{
LIST *next;
char input;
STATE *output;
LIST(char in, STATE *out); //私有,仅供STATE使用
~LIST();
friend STATE;
}

class STATE
{
char *name ;//状态名
LIST *list; //输入及输出列表
static STATE *error;//自动机陷阱
public:
void enlist (char in, STATE *out);//插入list
const STATE *next(char in) const; //输入in转移到下一个状态
const STATE start (char)const;//启动有限自动机
STATE(char *name);
~STATE();
}

LIST::LIST(char in, STATE *out)
{
input = in;
output = out;
}

STATE::STATE(char *name)
{
this->name = name;
}

void STATE::enlist(char in, STATE *out)
{
list->input = in;
list->STATE = out;
}

const STATE* STATE::next(char in)const
{