小编Jus*_*irt的帖子

根据数组按级别顺序创建二叉树

我正在研究一种按级别顺序构建二叉树的小型算法。给我一个数组,我必须使用其中的值按级别顺序构建二叉树。示例:arr inarr[5]={1,2,3,4,5};

给定一个这样的数组,我需要填写一个二叉树,如下所示:

        1
      /   \
    2      3
   / \    / \
  4   5  *   * 
Run Code Online (Sandbox Code Playgroud)

(* 为 NULL)节点是基本的二进制节点,具有左指针和右指针以及保存数组中值的 int 空间。

我理解根据树的高度遍历树的概念,并且一次移动一层,但我不确定以这种方式正确构建它的正确逻辑。

c arrays algorithm binary-tree

6
推荐指数
1
解决办法
2234
查看次数

struct dirent在头文件中没有de_type

所以我有一个项目,我需要构建一个小的简单文本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文件的其他引用,因为一个文件不在同一个库中,如果是这样,我该如何加载该库以便编译代码?

对不起,很长的帖子,非常感谢所有回答!

c gnu dirent.h libraries

1
推荐指数
1
解决办法
3347
查看次数

标签 统计

c ×2

algorithm ×1

arrays ×1

binary-tree ×1

dirent.h ×1

gnu ×1

libraries ×1