C fork()和二叉树的创建
如何为下面的代码创建二叉树C fork()和二叉树的创建,c,fork,binary-tree,C,Fork,Binary Tree,如何为下面的代码创建二叉树 #include <stdio.h> #include <unistd.h> int main() { fork(); fork() && fork() || fork(); fork(); printf("forked\n"); return 0; } #包括 #包括 int main() { fork(); fork()&&fork()| fork(); fork(); printf(“分叉
#include <stdio.h>
#include <unistd.h>
int main()
{
fork();
fork() && fork() || fork();
fork();
printf("forked\n");
return 0;
}
#包括
#包括
int main()
{
fork();
fork()&&fork()| fork();
fork();
printf(“分叉的”);
返回0;
}
基本上,我无法解决逻辑运算符条件。对于无条件fork()语句,这可以很容易地完成,但是上面的代码呢。
以下是链接供参考
#包括
int main()
{
fork();/*A*/
(fork()/*B*/&&
fork()/*C*/)| |/*B和C根据优先级分组*/
fork();/*D*/
fork();/*E*/
printf(“分叉的”);
返回0;
}
- 有5个fork调用(A、B、C、D、E)
- 程序从一个主线程(m)开始
- 执行fork时,将创建一个新的子进程。(c)
- 左侧节点始终是创建过程(m)
- 右节点是子进程
- 因此,父进程执行fork C,但跳过fork
D由于以下原因:
(1234&4392)| | fork()
- 新创建的子进程跳过fork C并执行fork
D由于上述原因
(0&&fork())| | fork()
#include <stdio.h>
int main()
{
fork(); /* A */
( fork() /* B */ &&
fork() /* C */ ) || /* B and C are grouped according to precedence */
fork(); /* D */
fork(); /* E */
printf("forked\n");
return 0;
}