提交 215ebf27 创建 作者: 宋海霞's avatar 宋海霞

更改输出信息

上级 e3ffc3b5
......@@ -12,64 +12,141 @@ int g_count = 0;
*/
void OutputResult(NFAState* result)
{
if (result == NULL)
if(result == NULL)
{
return;
}
int k = 0;
for (k = 0; k < 100; k++)
for(k = 0; k < 100; k++)
{
if ((int)result == g_address[k])
if((int)result == g_address[k])
{
return;
}
}
if (result != NULL)
if(result != NULL)
{
g_address[g_count++] = (int)result;
if (result -> Next1 != NULL)
{
printf("%d(%d)", result->Name, result->AcceptFlag);
if (result->Transform == '$')
// 当Next1与Next2同时不为空时,给Name赋值时有顺序问题,在这里约定先输出Name的值较小的
if(result -> Next1 != NULL && result -> Next2 != NULL)
{
if(result->Next1->Name < result->Next2->Name)
{
printf("->$->%d", result->Next1->Name);
printf("%d(%d)",result->Name,result->AcceptFlag);
if(result->Transform == '$')
{
printf("->$->%d",result->Next1->Name);
}
else
{
printf("->%c->%d",result->Transform,result->Next1->Name);
}
printf("\n");
printf("%d(%d)",result->Name,result->AcceptFlag);
if(result->Transform == '$')
{
printf("->$->%d",result->Next2->Name);
}
else
{
printf("->%c->%2d",result->Transform,result->Next2->Name);
}
printf("\n");
if(result -> Next1 != NULL)
{
NFAState* result1 = result -> Next1;
OutputResult(result1);
}
if(result -> Next2 != NULL)
{
NFAState* result2 = result -> Next2;
OutputResult(result2);
}
}
else
{
printf("->%c->%d", result->Transform, result->Next1->Name);
printf("%d(%d)",result->Name,result->AcceptFlag);
if(result->Transform == '$')
{
printf("->$->%d",result->Next2->Name);
}
else
{
printf("->%c->%2d",result->Transform,result->Next2->Name);
}
printf("\n");
printf("%d(%d)",result->Name,result->AcceptFlag);
if(result->Transform == '$')
{
printf("->$->%d",result->Next1->Name);
}
else
{
printf("->%c->%d",result->Transform,result->Next1->Name);
}
printf("\n");
}
if(result -> Next2 != NULL)
{
NFAState* result2 = result -> Next2;
OutputResult(result2);
}
if(result -> Next1 != NULL)
{
NFAState* result1 = result -> Next1;
OutputResult(result1);
}
printf("\n");
}
if (result -> Next2 != NULL)
else
{
printf("%d(%d)", result->Name, result->AcceptFlag);
if (result->Transform == '$')
if(result -> Next1 != NULL)
{
printf("%d(%d)",result->Name,result->AcceptFlag);
if(result->Transform == '$')
{
printf("->$->%d",result->Next1->Name);
}
else
{
printf("->%c->%d",result->Transform,result->Next1->Name);
}
printf("\n");
}
if(result -> Next2 != NULL)
{
printf("->$->%d", result->Next2->Name);
printf("%d(%d)",result->Name,result->AcceptFlag);
if(result->Transform == '$')
{
printf("->$->%d",result->Next2->Name);
}
else
{
printf("->%c->%2d",result->Transform,result->Next2->Name);
}
printf("\n");
}
else
if(result -> Next1 != NULL)
{
printf("->%c->%2d", result->Transform, result->Next2->Name);
}
printf("\n");
}
if (result -> Next1 != NULL)
{
NFAState* result1 = result -> Next1;
OutputResult(result1);
NFAState* result1 = result -> Next1;
OutputResult(result1);
}
if(result -> Next2 != NULL)
{
NFAState* result2 = result -> Next2;
OutputResult(result2);
}
}
if (result -> Next2 != NULL)
{
NFAState* result2 = result -> Next2;
OutputResult(result2);
}
if (result->AcceptFlag == 1)
if(result->AcceptFlag == 1)
{
printf("%d(%d)\n", result->Name, result->AcceptFlag);
printf("%d(%d)\n",result->Name,result->AcceptFlag);
}
}
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论