有穷自动机

#include<stdio.h>
#define MAX 100
typedef struct  
{
char name;
char l[MAX];
 
}node;
 
 
void tran(){      //专门做语句的转换操作}
 
 
 
void automata(char R[],int i){
int j = 0;
int n = i;
while(R[j] != '#'){
if(R[i] == '(')
{
printf("//在这里是做把'()'里的字符串里的语句转换,递归分解");
 
}
else if(R[i] == '|'){
printf("//在这里就是把A和B两个状态节点分成  语句1 , 语句2 分成两路连接");
 
}
else if(R[i] == '*'){
printf("//把前一个状态节点进行自循环。");
 
}
else{
 
printf("//进行一般的转换");
}
 
j++;
}
}
 
void main()
{
char R[MAX];
int i=0;
printf("输入要转换的正规式: ");
while(R[i-1] != '#'){
scanf("%c",&R[i]);
i++;
}
automata(R,i);   
}
原文地址:https://www.cnblogs.com/l549023320/p/5017341.html