#4
by じゃみ » 2年前
1~11を表示する線形リストにおいて
リスト生成とheadのポインタ(main(void){ から List *p; まで)を構造体の配列を使って
コード:
List listdata[] = {
{&listdata[1], 1},
{&listdata[2], 2},
{&listdata[3], 3},
{&listdata[4], 4},
{&listdata[5], 5},
{&listdata[6], 6},
{&listdata[7], 7},
{&listdata[8], 8},
{&listdata[9], 9},
{&listdata[10], 10},
{NULL, 11},
};
List *head = &listdata[0];
として昇順でコードを書けたのですが、
ループを使ってもっと簡略化したい場合、どのように書けばいいでしょうか?
試しに
コード:
List listdata[10];
for(int i = 0; i < 10; i++)
{
listdata[i] = {&listdata[i + 1], 1 + i};
}
listdata[10] = {NULL, 11};
として書くとエラーになりアイデアが思い浮かびません。
よろしくお願いします。
1~11を表示する線形リストにおいて
リスト生成とheadのポインタ(main(void){ から List *p; まで)を構造体の配列を使って
[code]
List listdata[] = {
{&listdata[1], 1},
{&listdata[2], 2},
{&listdata[3], 3},
{&listdata[4], 4},
{&listdata[5], 5},
{&listdata[6], 6},
{&listdata[7], 7},
{&listdata[8], 8},
{&listdata[9], 9},
{&listdata[10], 10},
{NULL, 11},
};
List *head = &listdata[0];
[/code]
として昇順でコードを書けたのですが、
ループを使ってもっと簡略化したい場合、どのように書けばいいでしょうか?
試しに
[code]
List listdata[10];
for(int i = 0; i < 10; i++)
{
listdata[i] = {&listdata[i + 1], 1 + i};
}
listdata[10] = {NULL, 11};
[/code]
として書くとエラーになりアイデアが思い浮かびません。
よろしくお願いします。