不确定的有穷自动机的确定化代码-(子集法)

/*
        输入:多组测试数据,开始节点d,经过条件b,结束节点c,中间以空格隔开,0 0 0表示每组输入结束
        样例输入:  0 a 1
                    0 a 2
                    0 b 1
                    1 a 3
                    1 a 4
                    2 a 1
                    0 0 0
        解题思路:构造子集T
                    0       a             b
                            a{1,2}T0      b{1}T1
                    T0      a{1,3,4}T2
                    T1      a{3,4}T3
                    T2      a{3,4}T3
        由子集表生成新的连接图。
                    T0      a       T2
                    T1      a       T3
                    T2      a       T3

*/
#include <cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<set>
#include<string>
#include<vector>
int k,k1=0;         //k用来记录输入的路径条数,k1用来记录新生成的图路径条数
char d, b, c;       //临时存储,输入的三个操作数

using namespace std;

struct point
{
    char start;
    char deal;
    char end;
};
bool comp(const point &a, const point &b)
{
    if(a.start==b.start)
        return a.deal<b.deal;
    return a.start<b.start;
}
void myscanf(point *a)
{
    while(d!='0'||b!='0'||c!='0')
    {
        a[k].start = d;
        a[k].deal = b;
        a[k++].end = c;
        scanf("%c %c %c", &d, &b
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值