小编Joh*_*ack的帖子

C函数没有参数行为

有人可以向我解释为什么以下代码在没有警告或错误的情况下编译?

我希望编译器警告我函数测试不要求任何参数.

但代码递归编译并运行函数测试.

static void has_args(int a, int b, int c) { 
    printf("has_args\n");
}

static void no_args() {
    printf("no_args\n");
    no_args(1, 2, 3);
}

void main() {
  no_args();
}
Run Code Online (Sandbox Code Playgroud)

c

31
推荐指数
2
解决办法
3万
查看次数

获取树的最小顶点覆盖的好算法是什么?

获取树的最小顶点覆盖的好算法是什么?

INPUT:

节点的邻居.

OUTPUT:

最小顶点数.

algorithm tree dynamic-programming

18
推荐指数
3
解决办法
2万
查看次数

ANTLR决策可以使用多个备选方案匹配输入

我有这个简单的语法:

expr: factor;

factor: atom (('*' ^ | '/'^) atom)*;

atom: INT
    | ':' expr;

INT: ('0'..'9')+
Run Code Online (Sandbox Code Playgroud)

当我跑它时它说:

决策可以使用多个替代1,2匹配输入,例如'*'

决策可以使用多个备选方案1,2匹配输入,例如'/'

我无法发现模棱两可.红色箭头是如何指向的?任何帮助,将不胜感激.

在此输入图像描述

java antlr antlr3

8
推荐指数
1
解决办法
3730
查看次数

使用优先级队列结构?

在C++标准库文档中搜索某些函数时,我读到优先级队列的推送和弹出需要恒定的时间.

http://www.cplusplus.com/reference/stl/priority_queue/push/

常量(在priority_queue中).虽然注意到push_heap在对数时间内运行.

我的问题是使用什么样的数据结构来维护优先级队列,其中包含推送和弹出的O(1)?

c++ algorithm priority-queue data-structures

6
推荐指数
1
解决办法
1724
查看次数

方案中的笛卡尔积

我一直在尝试做一个返回n套笛卡尔积的函数,在Dr博士中,这些集是作为列表列表给出的,我整天都被困在这里,我想要一些指导原则开始.

----后期编辑-----

这是我提出的解决方案,我确信它不是迄今为止最有效或最整洁但我只是在研究方案3周,所以对我来说很容易.

scheme cartesian-product racket

5
推荐指数
2
解决办法
7241
查看次数

Haskell图数据类型表示

我想以下列方式在Haskell中表示一个图:

对于每个节点,我想存储它的值和相邻节点的列表.我遇到的问题是我希望将相邻节点存储为其他节点的引用.

例如,我希望节点ny存储为("NY"(lp)),其中l和p是相邻节点,而不是("NY"("伦敦""巴黎")).
我试过这样的事情:

data Node a = Node { value :: a
                   , neighbors :: [Node a]
                   }deriving (Show)

let n1 = Node {value=1, neighbors=[n2]}
let n2 = Node {value=1, neighbors=[n1 n3]}
let n3 = Node {value=1, neighbors=[n2]}
Run Code Online (Sandbox Code Playgroud)

但是我得到了错误.我究竟做错了什么 ?

haskell

5
推荐指数
1
解决办法
1036
查看次数

Negamax - 玩家移动两次

你如何处理游戏,如果满足条件,同一个玩家移动?

我试过这样的事情,但我不认为这是对的:

function negamax(node, depth, ?, ?, color)
    if node is a terminal node or depth = 0
        return color * the heuristic value of node
    else
        foreach child of node
            if (condition is met) // the same player moves
               val := negamax(child, depth-1, ?, ?, color)
            else
               val := -negamax(child, depth-1, -?, -?, -color)
            if val??
                return val
            if val??
                ?:=val
        return ?
Run Code Online (Sandbox Code Playgroud)

algorithm minmax

5
推荐指数
1
解决办法
1106
查看次数

停止回溯

在 C/C++ 中是否有任何方法可以在不退出程序的情况下找到第一个解决方案后停止回溯算法。

我希望我的函数立即退出函数,而不是一一退出每一级递归声明返回。

c c++ algorithm backtracking

3
推荐指数
1
解决办法
2289
查看次数