0

不明な量の値を格納してから多くを削除するための最適なデータ構造は何ですか?

私はファイルを読んでいて、各行はより大きなデータ構造に C 文字列として格納されています。各行の長さはおそらく 20 文字未満で、1 つのサンプル ファイルには 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 機能を使用したいので、リストを持つことがサードパーティのライブラリを使用することを意味する場合、それは選択肢ではないと思います。

編集:リンクされたリストを作成するのは簡単ではありません.2番目に良いオプションは何ですか?

4

1 に答える 1

0

この場合、連結リストを使用する必要があります。ポインターと構造体を使用して、リンクされたリストを作成する必要があります。

于 2013-09-28T10:57:08.753 に答える