【发布时间】:2010-03-01 03:12:58
【问题描述】:
我将如何创建一个看起来像深度为 N 的平衡三叉树的流程层次结构? ...意味着每个进程有 3 个子进程,因此深度为 N 的树中有 (3^N-1)/2 个进程。要创建新进程,我只想使用 fork()。
这是我目前所拥有的,但我认为它不起作用,因为我不处理进程 ID,而且我真的不认为我应该递归地这样做:
void createTernaryTree(int n) {
if((n-1) == 0) return;
else {
int x;
for(x=0; x<3; x++) {
fork();
createTernaryTree(n-1);
}
}
}
谢谢, 赫里斯托
【问题讨论】:
-
请贴出你目前写的代码。人们通常不喜欢只为您编写代码。
-
如果这是作业,请标记它。
-
我假设您可以将平衡树编码为数据结构。为什么分叉过程有趣地不同?
-
我不知道如何处理作为树节点的进程并且进行递归对我来说没有意义,但如果它只是一个非树节点我会这样做处理东西。