DFS按C中的长度对路径进行排序

时间:2018-01-04 19:58:06

标签: c sorting graph depth-first-search

我对DFS算法一点帮助。我在C中编写应用程序,找到给定图形中两个顶点之间的所有可能路径。

结果(在顶点1和6之间)采用以下格式/顺序:

1-5-6, 1-6, 1-7-6

但我的愿望是让它们按照这样的长度排序:

1-6, 1-5-6, 1-7-6

但我不知道如何对它们进行排序。现在每当我找到一条新路径时,我立即将其打印到控制台输出。我确信有办法,该怎么做。现在我找不到了,所以我在寻求帮助。

感谢您的回答。

修改

示例代码,我如何打印路径,我反向堆栈以正确的顺序。

Stack *reverse = stack_new();

/* copy data of stack */
Node *temp = path->head;
while(temp != NULL)
{
    stack_push(reverse, temp->data);
    temp = temp->next;
}

if(reverse->size >= 1)
{
    printf("%d", stack_pop(reverse));
}
while(stack_empty(reverse) == 0)
{
    printf("-%d", stack_pop(reverse));
}
printf(";");
free(reverse);

0 个答案:

没有答案
相关问题