好吧,所以我一直在寻找这遍遍的stackoverflow,并绝对谷歌搜索了好半个小时,但我似乎得到的答案几乎没有任何关系我的东西想要做的,希望有人能帮助我在这一个,继承人的代码:分叉二叉树,叉功能问题
int cCount = 0;
while(cCount < 2)
{
switch(fork())
{
case 0:
cCount++;
break;
case -1:
printf("Failed");
break;
default:
break;
}
}
return;
现在对于出现的,这个代码是想创建一个具有3级树的问题(0,1,2) ,
0是它开始分岔的主要亲本
1为2点的孩子的父母的在0
2为4名的儿童的父母2在1
创建对称树。从本质上讲,虽然我有几个问题:
交换机上的每个循环执行叉子,所以从理论上讲,如果叉> 0,则仍然会分叉创建一个子儿的父母和循环将继续下去,因此,它可能最终会产生一个父母 - 父母 - 父母 - 父母,而不是每个父母的2个孩子,然后是4等于2等。叉子如何知道该怎么做?
说我想做一棵树,在最后一层有一个更多的孩子(级别),例如,我将如何开始?
我理解叉是否正确?请解释一下,如果不是这样,那么很多教程都是围绕网络进行的,但它们似乎都使它变得更加复杂。
干杯,谢谢 对我好,英语不是我的母语。
很高兴知道我设计了一个DoS,总是很方便。在这种情况下,如何在叉子内部调用叉子。因为如果你只是调用fork(),它将仅派生父代。 –
你需要做的是交换一些东西,所以'cCount ++;'行在'default:'块中,而不是'case 0:'块。另外,你应该把'cCount = 0;'这行加到'case 0:'块中。 为了防止它永远循环,你需要一个'level'变量,它从零开始,并在刚刚提到的'cCount = 0;'行后面递增。然后,您可以使用该变量来确定是否应该继续分叉。 –