• 大小: 0.29M
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-02
  • 语言: 其他
  • 标签: 其他  

资源简介

关于nfa确定化.zip

资源截图

代码片段和文件信息

#include 
#include 
#include 
#define MAX_LINE 1024
char  in[MAX_LINE][MAX_LINE];
char now[MAX_LINE][MAX_LINE][MAX_LINE];
int flag_in[MAX_LINE][MAX_LINE];//没用到,可以不要 
char now_state[MAX_LINE];
char state[MAX_LINE];

char alphabet=‘A‘;
int length=0;
int l_now=0;
int l_state=0;


void getfile(){
char buf[MAX_LINE];//缓冲区
int len;//行字符个数
 FILE *fp;            //文件指针
 if((fp = fopen(“64-7(1).txt““r“)) == NULL)
 {
 printf(“fail to read“);
 exit (1) ;
 }
 while(fgets(bufMAX_LINEfp) != NULL){
  len = strlen(buf);
  buf[len-1] = ‘\0‘;  //去掉换行符
  //printf(“%s %d \n“buflen);
  strcpy(in[length++]buf);
 }
 fclose(fp);
}
void print(){
printf(“\n\nnow数组的结果是:\n“);
for(int i=0;i for(int j=0;j<4;j++){
printf(“%s “now[i][j]);
}
printf(“\n“);
}
}
//flag位用来记载上一步是不是q如果是q就可以让a或b走一步,
//如果不是q说明是a或b,因为a或b只能走一次,所以这次不能走 
//past_flag位用来记载曾经有没有一步是a或b 
char * dfs_d(char pchar qbool flagbool past_flag){
 printf(“\n本次进行递归的是:%c  %c\n“pq); 
int xy;
if(q==‘a‘){
x=4;
}else if(q==‘b‘){
x=6;
}
for(int i=1;i if(p==in[i][0]){
y=i;
}
}
if(in[y][2]!=‘#‘){
flag_in[y][2]=1;
char str[3];
str[0]=in[y][2];
str[1]=‘‘;
str[2]=‘\0‘;
if(past_flag==true){
strcat(now_statestr);
}
dfs_d(in[y][2]qtruepast_flag);
}
if(in[y][x]!=‘#‘/*&&flag_in[y][x]==0*/&&flag==true&&past_flag==false){
flag_in[y][x]=1;
char str[3];
str[0]=in[y][x];
str[1]=‘‘;
str[2]=‘\0‘;
strcat(now_statestr);
dfs_d(in[y][x]qfalsetrue);
}
printf(“\n此次递归的结果为:%s\n“now_state);
return now_state;
}

char * dfs(char * statechar s){
memset(flag_in0sizeof(flag_in));

//printf(“now_state的结果是:%s“now_state);
/*
for(int i=0;i<10;i++){
for(int j=0;j<10;j++){
printf(“%d“flag_in[i][j]);
}
printf(“\n“);
}
*/
printf(“\ndfs读入结果为:%s  %c\n“states);
char  now_out[MAX_LINE];
strcpy(now_out“{“);
for(int i=0;state[i]!=‘\0‘;i++){
memset(now_state‘\0‘sizeof(now_state));
if(state[i]!=‘{‘&&state[i]!=‘}‘&&state[i]!=‘‘){

printf(“\n此次dfs_d的是:%c\n“state[i]);
//printf(“\n此时的now_out是:%s\n“now_out);
strcat(now_outdfs_d(state[i]struefalse));
}
}
int l_str=strlen(now_out);
if(l_str==1){
now_out[l_str]=‘}‘;
now_out[l_str+1]=‘\0‘;
}else{
now_out[l_str-1]=‘}‘;
now_out[l_str]=‘\0‘;
}
printf(“\n此次dfs_d的结果是:%s\n“now_out);

//字符串排序去重函数 


char hash[100];
int value[100];
memset(hash‘\0‘sizeof(hash));
memset(value0sizeof(value));
strcpy(hash“x0123456789y“);
for(int i=0;i for(int j=0;j<12;j++){
if(now_out[i]==hash[j]){
value[j]=1;
}
}
}
char  now_ans[100];
strcpy(now_ans“{“);
for(int i=0;i<12;i++){
if(value[i]==1){
char ss[3];
ss[0]=hash[i];
ss[1]=‘‘;
ss[2]=‘\0‘;
strcat(now_ansss);
}
}
int l_now_ans=strlen(now_ans);
if(l_str==1){
now_ans[l_now

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-10-27 17:31  关于nfa确定化\
     文件        5131  2019-10-27 17:30  关于nfa确定化\4.1.png
     文件       10025  2019-10-27 17:30  关于nfa确定化\4.2.png
     文件       55235  2019-10-27 17:29  关于nfa确定化\4.png
     文件          63  2019-10-26 18:04  关于nfa确定化\4.txt
     文件          63  2019-10-27 16:20  关于nfa确定化\4s.txt
     文件       80250  2019-10-27 13:37  关于nfa确定化\64-14.jpg
     文件          45  2019-10-27 13:39  关于nfa确定化\64-14.txt
     文件          72  2019-10-27 16:30  关于nfa确定化\64-7(1).txt
     文件       88611  2019-10-27 16:47  关于nfa确定化\64-7.jpg
     文件        5484  2019-10-27 17:12  关于nfa确定化\nfa确定化4.cpp
     文件      137983  2019-10-27 17:14  关于nfa确定化\nfa确定化4.exe
     文件        5519  2019-10-27 17:14  关于nfa确定化\nfa确定化(最终版).cpp
     文件      137495  2019-10-27 17:14  关于nfa确定化\nfa确定化(最终版).exe
     文件         290  2019-10-27 17:32  关于nfa确定化\说明.txt

评论

共有 条评论