gpt4 book ai didi

c - C语言中的结构,指针和树

转载 作者:行者123 更新时间:2023-12-04 12:21:42 24 4
gpt4 key购买 nike

对于我们的最后一个学期项目,我的Operating Systems类中的每个人都承担了实现伪“ linux文件系统”的任务。这个想法是模拟处理文件,文件夹,更改目录等。

我不喜欢使用C进行编程时必须使用字符串和指针,但不幸的是,出于我的安心考虑,该项目似乎涉及到两者。因为我对指针相对不满意,所以我希望可以进行健全性检查,以确保我对底层树结构的后端实现是正确的。

typedef struct floorNode
{
char floorName[30]; //the name of the tree node
struct floorNode *parentPointer; //this is a pointer to the parent node. Null for the root node.
struct floorNode *childPointers[10]; //this is an array holding pointers to up to 10 child nodes.
char fileArray[10][30]; //this is an array of 10 'files', each of up to length 30.
//for this assignment, strings are the only type of "file"

} floorNode;


这是在C中实现树的正确方法吗?

最佳答案

那或多或少是正确的数据类型。

我担心fileArray[][]。我认为这不是必需的,除非我误解了它的目的。要获取子项的floorName,请遍历childPointers[]以在子项中获取名称。

需要考虑的一点是,如果节点具有30个字符串,则要使它们的存储空间都更大一些(在这种情况下为31个),因此始终存在尾随的NUL,并且不需要特殊的麻烦处理来区分30个字符没有NUL的字符串,以及所有具有一个的所有较短的字符串。

关于c - C语言中的结构,指针和树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5828110/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com