小编Ash*_*egi的帖子

用于查找图的关节点或切割顶点的算法的说明

我搜索过网络,找不到任何DFS算法的解释,用于查找图形的所有关节顶点.甚至没有维基页面.

从阅读中,我从这里了解了基本事实.PDF

每个节点都有一个变量,它实际上是在观察后边缘并找到朝向根节点的最近和最上面的节点.在处理完所有边缘之后,它将被找到.

但我不明白如何在执行DFS期间在每个节点上找到这个向下和向上变量.这个变量到底是做什么的?

请解释算法.

谢谢.

algorithm complexity-theory graph microsoft-distributed-file-system graph-algorithm

27
推荐指数
2
解决办法
4万
查看次数

如何在javascript中打印功能签名

我有一个功能:

fs.readFile = function(filename, callback) {
    // implementation code.
};
Run Code Online (Sandbox Code Playgroud)

一段时间后,我想在调试过程中看到函数的签名.

当我尝试时,console.log(fs.readFile)我得到了[ FUNCTION ].

那不给我任何信息.

如何获得该功能的签名?

javascript debugging node.js

17
推荐指数
2
解决办法
1万
查看次数

在g ++ linux中找不到-lc和-lm

我正在使用ubuntu和gcc和g ++工作正常,但今天它显示:

cannot find -lm
cannot find -lc
Run Code Online (Sandbox Code Playgroud)

我搜索并发现它与之有关/usr/bin/ld.这是符号链接(我希望)到lbd.bdf.我将该文件粘贴在某些朋友的ubuntu目录中.它没用.

我发现这-lc意味着包括静态库libc.a.
同样的-lm

我发现它们在我的i386-linux-folders名字(名字不同).

我尝试过代码块但错误相同.

gcc g++ include

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

错误MSB3411:无法使用Visual C++组件"VCBuild.exe"

我有Visual Studio 2010 SP1和Windows sdk 7.1.我还有VS2012和Windows套件8.

当我运行Windows SDK 7.1 Command Prompt并运行node-gyp build --msvs_version=2010它给我错误:

error MSB3411: Could not load the Visual C++ component "VCBuild.exe". 
If the component is not installed,
either 1) install the Microsoft Windows SDK for Windows Server 2008 and .NET Fr
amework 3.5, or 2) install Microsoft Visual Studio 2008.
Run Code Online (Sandbox Code Playgroud)

它是否正在尝试查找VCBuild.exe.

我发现vcbuild已被msbuild取代.

这是一个有效的错误吗?

我还发现在Windows 7中,对于.NET 3.5,您只需要从控制面板打开它.关于stackoverflow的其他问题,请看这里这个.

但问题是,由于vcbuild.exe在vs2010系统中不存在,那么为什么node-gyp正在搜索它?或者我错过了什么?

我该如何解决这个错误?

msbuild visual-studio-2010 node-gyp

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

Lambda和通过引用局部变量捕获:在范围之后访问

我通过引用两个lambda传递我的局部变量.我在函数范围之外调用这些lambdas.这是undefined吗?

std::pair<std::function<int()>, std::function<int()>> addSome() {
    int a = 0, b = 0;
    return std::make_pair([&a,&b] {
        ++a; ++b;
        return a+b;
        }, [&a, &b] {
            return a;
        });
}

int main() {
    auto f = addSome();
    std::cout << f.first() << " " << f.second();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是,如果不是,则一个lambda中的变化不会反映在其他lambda中.

我是否误解了lambda的背景中的传递?

我正在写变量,它似乎工作正常,输出没有运行时错误

2 0.如果它工作,那么我会期望输出2 1.

c++ lambda local c++11

12
推荐指数
2
解决办法
1万
查看次数

在emacs中的haskell repl

嗨,我开始使用haskell,并尝试设置我的emacs进行开发.

我已经haskell-modghc-mod在最新的emacs 24.3.1.GHC是7.6.3

我创建了一个haskell文件first.hs,当我这样做时C-c C-l 问:

start a new project named haskell ? y or n
Run Code Online (Sandbox Code Playgroud)

我的目录名是haskell.我按了y

Set the cabal directory
Run Code Online (Sandbox Code Playgroud)

我已尝试使用〜/ .cabal和我当前的目录命名 haskell

Set the current directory
Run Code Online (Sandbox Code Playgroud)

只需按下输入,因为它有haskell目录

它显示错误消息:

haskell-process-start: cl-ecase failed: cabal-rep, (ghci quote cabal-repl quote cabal-ghci quote cabal-dev quote)
Run Code Online (Sandbox Code Playgroud)

如何获得repl?

我读到我可能需要降级ghc版本才能使其正常工作.那是好的解决方案吗?

方案:

custom-set-variables在init.el中有多个,它导致了问题.

emacs haskell read-eval-print-loop haskell-mode

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

为什么需要内存对齐?

可能重复:
内存对齐的目的

我在网上阅读了一些关于内存对齐的文章,并且可以理解,通过正确对齐的内存(采用2字节对齐),我们可以一次性快速获取数据.

但是如果我们有像一个硬件一样的内存,那么给定一个地址,为什么我们不能直接从该位置读取2字节.喜欢:在此输入图像描述

我考虑过它.我认为,如果记忆在奇偶组中,那么理论就适用了.

在此输入图像描述

我错过了什么?

c c++ memory pointers memory-alignment

7
推荐指数
2
解决办法
4130
查看次数

SwingUtilites:如何从Java中的另一个线程返回值?

我正在尝试用Java创建一个应用程序.为了使Swing正常工作,我这样做了:

public static void main(String[] array){ 

String outerInput;
SwingUtilities.invokeLater(new Runnable(){
    @Override
    public void run() {
        // I want this string input.
        String input = JOptionPane.showInputDialog(
            null,"Stop ?", JOptionPane.QUESTION_MESSAGE);  
});
// How can I get this input value in String outerInput?
}
Run Code Online (Sandbox Code Playgroud)

我如何在我的主体中获得此输入字符串?

java swing multithreading input swingutilities

6
推荐指数
2
解决办法
4303
查看次数

数据包如何通过代理服务器到达目的地?

我对来自我的机器的数据包如何通过代理服务器到达目的地感到困惑。我的机器有一个用于 Intranet 的私有 ip,我们有一个带有公共 ip 的代理服务器可以与世界对话。

所以我们这里有三个地址。

1) my private ip address
2) proxy server address
3) destination address (google.com)
Run Code Online (Sandbox Code Playgroud)

现在在我发送的 tcp 数据包中,我有源端口和目标端口来区分我的机器和目标上的各种程序(如 mozilla , chrome ,ie)。

在ip网络层我有源地址和目标地址。

不知道http是否也有地址。

所以当我的数据包离开我的机器时,它会包含什么地址。以便它通过中间的网关到达我的代理服务器。?

一旦它到达代理服务器,就可以使用 NAT 将其发送到目的地。但我对它如何到达代理服务器感到困惑。

编辑:我的数据包是否应该包含我的代理服务器(本地私有)的地址以到达它?我可以通过配置我的浏览器来更改我的代理服务器。我的数据包离开我的机器后如何知道它会去哪个代理服务器?

ip proxy networking tcp http

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

为什么foldl与forFn函数没有短路?

我的理解是,foldlfoldr执行,如:

foldl f a [1..30] => (f (f (f ... (f a 1) 2) 3) ... 30)

foldr f a [1..30] => (f 1 (f 2 (f 3 (f ....(f 30 a)))))..)

所以.. foldr (&&) False (repeat False)可以shortciruit,因为外部f看到(&&) False ((&&) False (....))第一个参数看起来是假的,并且不需要评估第二个参数(这是一个大的thunk).

所以会发生什么

andFn :: Bool -> Bool -> Bool
andFn _ False = False
andFn x True  = x
Run Code Online (Sandbox Code Playgroud)

foldl andFn True (repeat False)  -- =>

-- (andFn …
Run Code Online (Sandbox Code Playgroud)

haskell lazy-evaluation fold thunk

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