0

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

我正在读取一个文件,每一行都作为 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 功能,所以如果有列表意味着使用第三方库,我认为这不是一个选项。

编辑:创建一个链接列表并不是一件容易的事,第二好的选择是什么?

4

1 回答 1

0

在这种情况下,您应该使用链表。您必须在指针和结构的帮助下创建一个链表。

于 2013-09-28T10:57:08.753 回答