使用链表在C中实现一个基本的Linux文件系统

使用链表在C中实现一个基本的Linux文件系统,c,data-structures,filesystems,C,Data Structures,Filesystems,为了实现一个文件系统,我有两种结构,除了TODO部分(在我的家庭作业中要求),我不能修改它 目录的结构: typedef struct Directory { char *name; // TODO: The list of files of the current directory File *fileList; // TODO: The list of directories of the current directory Directory *dirList; // The par

为了实现一个文件系统,我有两种结构,除了TODO部分(在我的家庭作业中要求),我不能修改它

目录的结构:

 typedef struct Directory {
char *name;

// TODO: The list of files of the current directory
File *fileList;
// TODO: The list of directories of the current directory
Directory *dirList;
// The parent directory of the current directory (NULL for the root directory)
struct Directory *parentDir;
} Directory;
一个用于文件:

typedef struct File {
// The name of the file
char *name;

// The size of the file
int size;

// The content of the file
char *data;

// The directory in which the file is located
Directory *dir;
} File;

我的问题是,既然我的结构中没有
File/Directory*next
指针,我如何保持对文件和目录的引用以保持它们的链接?我是否定义了保存引用的不同结构?如果这是一个愚蠢的停顿,我很抱歉,但我在这里严重遗漏了一些内容。

名称
fileList
dirList
清楚地表明列表和列表必须有
next
元素。但是,作为一种替代方法,您可以让它们指向动态分配的数组,这将使它们不容易修改(扩展、收缩)。可以大胆地添加下一个成员吗?我很想看到你的教授没有下一个成员的解决方案。嗨!我按照庞培在TODO评论中的建议添加了这些名字,所以不,它们不一定要有下一个元素。关于数组方法,我想创建一个哈希表,虽然我还不太熟悉,所以我可能错了。@PaulOgilvie这是唯一一个数组“驱动的”。在这个练习中,你不需要真正的链接列表。它将帮助您使用
realloc
。同时添加多少元素以保持性能和其他性能。