我正在研究一种按级别顺序构建二叉树的小型算法。给我一个数组,我必须使用其中的值按级别顺序构建二叉树。示例:arr inarr[5]={1,2,3,4,5};
给定一个这样的数组,我需要填写一个二叉树,如下所示:
1
/ \
2 3
/ \ / \
4 5 * *
Run Code Online (Sandbox Code Playgroud)
(* 为 NULL)节点是基本的二进制节点,具有左指针和右指针以及保存数组中值的 int 空间。
我理解根据树的高度遍历树的概念,并且一次移动一层,但我不确定以这种方式正确构建它的正确逻辑。
所以我有一个项目,我需要构建一个小的简单文本shell,可以运行,编辑和读取目录中的文件.我有一个应该工作的小原型,除了我编译时,我收到一个错误,关于在dirent.h头文件中使用的struct dirent中找不到d_type.
d = opendir( "." );
c = 0;
while ((de = readdir(d))){
if ((de->de_type) & DT_DIR)
printf( " ( %d Directory: %s ) \n", c++, de->de_name);
}
Run Code Online (Sandbox Code Playgroud)
变量"de"的类型为struct dirent*,并且正在检查它的类型,我得到错误:'struct dirent'没有名为'de_type'的成员
这里我真的很困惑和困惑:我在两个窗口(使用开发C++)和Ubuntu(使用gcc)上编译了这段代码.我在两个操作系统上都收到了相同的错误,当我检查使用的库时,我相信这是正常的gnu C库,有一个名为d_type的变量:
https://www.gnu.org/software/libc/manual/html_node/Directory-Entries.html
我找到了对dirent.h文件的其他引用,因为一个文件不在同一个库中,如果是这样,我该如何加载该库以便编译代码?
对不起,很长的帖子,非常感谢所有回答!