zoukankan      html  css  js  c++  java
  • 1118 实验三 有限自动机的构造与识别

    #include<stdio.h>
    char gra[80];
    char ch;
    int n,p=0,k=0;
    struct{
    char R[10];
    }NFA[10];
    char R1[10];
    char R2[10];
    main()
    {
    printf("---------------正规文法转换成有穷自动机------------------
    ");
    printf("请输入正规文法R:");
    do{
    ch=getchar();
    gra[p++]=ch;
    }while(ch!='#');
    n=strlen(gra);
    scaner(gra);
    printf("
    ");
    }
    scaner(char *r)
    {
    int i,j;
    int m;
    int can=1;
    m=strlen(r);
    if(m==1||r[1]=='#')
    printf("f(%d,%c)=B
    ",k,r[0]);
    else
    {
    for(i=0;i<m;i++)
    {
    ch=r[i];
    if(ch=='|')//寻找'|'
    {
    for(j=0;j<i;j++)
    NFA[k].R[j]=r[j];
    scaner(NFA[k++].R);
    for(j=i+1;j<m;j++)
    NFA[k].R[j-i-1]=r[j];
    scaner(NFA[k++].R);
    can=0;
    break;
    }
    if(ch=='*')//寻找'*'
    {
    can=0;
    break;
    }
    }
    if(can==1)
    {
    for(i=0;i<m;i++)
    {
    ch=r[i];
    if(ch!='.'&&ch!='#'&&r[i+1]!='#')
    printf("f(%d,%c)=%d
    ",k++,r[i],k+1);
    if(ch!='.'&&ch!='#'&&r[i+1]=='#')
    printf("f(%d,%c)=B
    ",k,r[i]);
    }
    }
    }
    }
  • 相关阅读:
    洛谷 P2053 :[SCOI2007]修车(拆点+最小费用流)
    LightOJ
    spark简单入门
    crontab 应用
    HttpClient的使用
    build.sbt的定义格式
    Scalatra
    SBT 构建scala eclipse开发
    mysql 存在更新,不存在插入
    Flash Vector例子
  • 原文地址:https://www.cnblogs.com/LwF39/p/5039999.html
Copyright © 2011-2022 走看看