我一直试图了解fork()
行为.这一次在for-loop
.请注意以下代码:
#include <stdio.h>
void main()
{
int i;
for (i=0;i<3;i++)
{
fork();
// This printf statement is for debugging purposes
// getppid(): gets the parent process-id
// getpid(): get child process-id
printf("[%d] [%d] i=%d\n", getppid(), getpid(), i);
}
printf("[%d] [%d] hi\n", getppid(), getpid());
}
Run Code Online (Sandbox Code Playgroud)
这是输出:
[6909][6936] i=0
[6909][6936] i=1
[6936][6938] i=1
[6909][6936] i=2
[6909][6936] hi
[6936][6938] i=2
[6936][6938] hi
[6938][6940] i=2
[6938][6940] hi
[1][6937] i=0
[1][6939] i=2
[1][6939] hi
[1][6937] i=1
[6937][6941] i=1
[1][6937] i=2
[1][6937] …
Run Code Online (Sandbox Code Playgroud) 我正在使用Bootstrap 3
和JavaScript "创建"我自己的"ComboBox" .Here is the JSFiddle
对于我到目前为止:
<div class="input-group">
<input type="TextBox" ID="datebox" Class="form-control"></input>
<div class="input-group-btn">
<button type="button" class="btn dropdown-toggle" data-toggle="dropdown">
<span class="caret"></span>
</button>
<ul id="demolist" class="dropdown-menu">
<li><a href="#">A</a></li>
<li><a href="#">B</a></li>
<li><a href="#">C</a></li>
</ul>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
$(document).on('click', '.dropdown-menu li a', function() {
$('#datebox').val($(this).html());
});
Run Code Online (Sandbox Code Playgroud)
这种方法效果很好,直到我想在页面上多次重复这个"ComboBox".问题在于JQuery函数正在寻找ANY/ALL '.dropdown-menu li a'
.
如何更改我的JQuery以仅查找具有ID demolist的 UL 并获取其选定值?
我试过以下没有成功:
我尝试过'#demolist .dropdown-menu li a'
但不会触发该功能:
$(document).on('click', '#demolist .dropdown-menu li a', function() {
$('#datebox').val($(this).html());
});
Run Code Online (Sandbox Code Playgroud)
我尝试调用 …
我试图理解fork(),所以我把以下示例放在一起:
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
void main()
{
if(fork()==0)
{
printf("2");
if(fork()==0)
{
printf("4");
}
else
{
printf("3");
}
}
else
{
printf("1");
}
}
Run Code Online (Sandbox Code Playgroud)
当我在纸上描绘时,我画了下面的草图:
所以我认为输出应该是1234.但是,当我运行此代码时,输出为12324.这是为什么?我的错误在哪里?
阅读评论后,建议执行以下任何操作
\n
到每个printf语句fflush(stdout);
在每个printf语句后添加setbuf(stdout, NULL);
<----这就是我最终做的:)更新我的代码后,输出确实是1234.
我正在尝试自学图论,现在试图了解如何在图中找到SCC.我已在SO读几个不同的问题/答案(例如,1,2,3,4,5,6,7,8),但我不能找到一个与一个完整的一步一步的例子,我可以遵循.
根据CORMEN(算法导论),一种方法是:
- 调用DFS(G)来计算每个顶点u的完成时间f [u]
- 计算转置(G)
- 调用DFS(Transpose(G)),但是在DFS的主循环中,按照减小f [u]的顺序考虑顶点(在步骤1中计算)
- 输出步骤3的深度优先林中每棵树的顶点作为单独的强连接组件
观察下面的图表(问题是3.4从这里开始.我在这里和这里找到了几个解决方案,但我试图打破这个并自己理解它.)
步骤1:调用DFS(G)以计算每个顶点u的结束时间f [u]
从顶点A开始运行DFS:
请注意格式为[Pre-Vist,Post-visit]的RED文本
第2步:计算转置(G)
步骤3.调用DFS(Transpose(G)),但是在DFS的主循环中,按照f [u]递减的顺序考虑顶点(在步骤1中计算)
好的,所以顶点按照访问后(完成时间)值减少的顺序:
{E,B,A,H,G,I,C,D,F,J}
所以在这一步,我们在G ^ T上运行DFS,但从上面列表的每个顶点开始:
步骤4:将步骤3的深度优先林中的每棵树的顶点输出为单独的强连通分量.
所以我们有五个强关联组件:{E},{B},{A},{H,I,G},{C,J,F,D}
我试图了解DFS 的复杂性如何/为什么是 O(V+E)。这是我分析伪代码迭代 DFS 复杂性的尝试。
DFS(G, t)
{
1 stack S = new empty Stack of size G.|V| ... O(1)
2 S.push(t) ... O(1)
3 while(S is not Empty) ... O(|V|), this will always be =<|V|
{
4 u = S.pop() ... O(1)
5 if(u.visited = false) ... O(1)
{
6 u.visited = true ... O(1)
7 for-each edge (u,v) in G.E ... O(|E|), this will always be =<|E|
8 if(v.visited = false) ... O(1)
9 S.push(v) …
Run Code Online (Sandbox Code Playgroud) algorithm big-o time-complexity nested-loops asymptotic-complexity
algorithm ×2
c ×2
fork ×2
big-o ×1
graph-theory ×1
html ×1
javascript ×1
jquery ×1
nested-loops ×1