首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用链接列表比较和排序C中的Dominoes

用链接列表比较和排序C中的Dominoes
EN

Stack Overflow用户
提问于 2016-05-05 19:12:01
回答 1查看 170关注 0票数 0

我真的被困住了,而且充满了怀疑。

这个问题要求验证可能的可能性,并排列n个多米诺骨牌。

当我说“命令”的时候,它不一定是12--23

因此,接受的输入是

3/多米诺骨牌数

1 3/

[1]可能性

[3]2/

2/多米诺骨牌数

3 4

2 5

0 //表示多米诺骨牌的结束

对此输入的可接受输出为

测试1

51/13/32[3]

测试2

不是

不是

在基本范围以下,以C为单位

代码语言:javascript
复制
    #include <stdio.h>
int main(){
int NumOfDominoes = 1, Test = 1, Dominoes=1;
int E,D;
int boolean=1;

while( NumOfDominoes != 0 )
{
    scanf("%d",&NumOfDominoes);
    while( Dominoes < NumOfDominoes)
    {
        scanf("%d %d",&E,&D);
        Insert( E, D); // the domino itself
        Dominoes++;
    }

}

for( Test ; Test <= NumOfDominoes ; Test++)
{
    printf("Test %d\n",Test);

    boolean = validity();  //returns 1 if the sequence of dominoes present equal values, i.e, possible possibilities

    if( boolean = 1) printf("yes\n");
    else {printf("no\nno\n");}

        masterFunction( E, D); //put in order the dominoes in order, 01|13|35...
}
return 0;
}

如何才能看到缺少三个“小”函数:Insert()validity()masterFunction(E,D)

这里是我塞的地方,我不知道如何比较这个多米诺骨牌,排列整齐,以及如何正确插入。我什么都不知道。:(

如果能提供任何帮助,我将不胜感激。谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-05 19:36:44

这个问题的解决方案称为深度优先搜索,它通常使用递归实现。

选择一个开始的多米诺骨牌(在两个方向之一)。这限制了链中第二张多米诺骨牌的选择和方向。继续添加多米诺骨牌,直到对下一个多米诺骨牌没有有效的选择,或者添加了所有多米诺骨牌。

如果所有的多米诺骨牌都被添加了,那么你就完成了,答案是“是的”。

如果你试过所有可能的开始多米诺骨牌和所有可能的后续多米诺骨牌,没有链使用所有多米诺骨牌,那么答案是“否”。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37058492

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档