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

更改输出信息

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