天天看點

自動機實驗

#include<stdio.h>

#define MAX 100

typedef struct   //構造一個鄰接表 用于存儲NFA

{

char name;

char line[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 分成兩路連接配接");

//在這裡就是把A和B兩個狀态節點分成  語句1 | 語句2 分成兩路連接配接

else if(R[i] == '*'){

printf("//在這裡就是把前一個狀态節點進行自循環。");

//在這裡就是把前一個狀态節點進行自循環。

else{

//在這裡進行一般的轉換。

printf("//在這裡進行一般的轉換");

j++;

void main()

char R[MAX];

int i=0;

printf("請輸入要轉換的正規式:\n");

while(R[i-1] != '#'){

scanf("%c",&R[i]);

i++;

automata(R,i);    //用于轉換正規式。