存储未知数量的值然后删除许多值的最佳数据结构是什么?

我正在读取文件,并且每一行都以C字符串的形式存储在较大的数据结构中。每行可能少于20个字符长,一个示例文件有300000行。无论我要使用什么数据结构,它的大小只会在最初创建时增加。从那里它只会​​缩小大小。我会用什么?在Java中,我将使用Array List或Vector。动态数组可以工作吗?如果是,它将是什么样子?

char aLine[21];
char *data = malloc(aLine);
fp = fopen("datafile", "r");
if(fp== NULL)
    exit(EXIT_FAILURE);
while(fscanf(fp, "%20s", aLine) == 1)
{
    data = aLine;
    realloc(data, sizeof(data)+sizeof(aLine));
}


我想使用标准的C和POSIX功能,因此,如果拥有列表意味着使用第三方库,那么我认为这不是一个选择。

编辑:很好地创建一个链表并不简单,第二好的选择是什么?

最佳答案

在这种情况下,您应该使用linked list。您必须在指针和结构的帮助下create a linked list

08-04 07:11