一、题目:已知DFA如下:
请编程输出符号串aacd# 识别过程,如下表所示:
二、源程序及运行结果截图
运行截图:
源代码:
#include <iostream>
#include <malloc.h>
#include <string>
using namespace std;
typedef struct Node{
int ind;
struct Node *a, *b, *c, *d;
}Node;
Node *create_node(int a) {
Node *p = (Node *)malloc(sizeof(Node));
p->ind = a;
p->a = p->b = p->c = p->d = NULL;
return p;
}
Node *init_node() {
Node *a = create_node(1);
Node *b = create_node(2);
Node *c = create_node(3);
Node *d = create_node(4);
a->a = c, a->b = b, b->d = d, c->a = c, c->c = b, c->d = d;
return a;
}
int main() {
Node *p = init_node(), *q = p;
string st, at;
int a;
cin >> st;
for (int i = 0; i < st.size(); i++) {
a = q->ind;
cout << q->ind << ‘\t‘ << st[i] << ‘\t‘;
for (int j = i + 1; j < st.size(); j++) cout << st[j];
if (!q)
if (st[i] != ‘#‘) return 1;
else return 0;
switch (st[i]) {
case ‘a‘: q = q->a; break;
case ‘b‘: q = q->b; break;
case ‘c‘: q = q->c; break;
case ‘d‘: q = q->d; break;
}
cout <<‘\t‘;
q->ind == a && a == 4 && (cout << "OK" << ‘\t‘ << "接受" << endl, 1) || cout << q->ind << endl;
}
return 0;
}
原文:https://www.cnblogs.com/hhhahh/p/14754413.html