私はこのトピックに関する有用なコンテンツを見つけるためにたくさん検索しましたが、無駄でした。正常に機能しているリンクリストを作成しました。さて、割り当てとして、ファイル「input.txt」で与えられたいくつかの辞書の単語を保存する必要があります。この割り当ては、2Dリンクリストを使用して行う必要がある、つまり、リンクリストのノード内に別のリンクリストを作成する必要があると述べられています。つまり、リンクリストのすべてのノードにリストも含まれるようになります。これはベクトルでも実行できますが、リンクリストの方が役立つと思います。ここで、コードについて考えてみましょう。
//list.h内
template <class T>
struct ListItem
{
T value;
ListItem<T> *next;
ListItem<T> *prev;
ListItem(T theVal)
{
this->value = theVal;
this->next = NULL;
this->prev = NULL;
}
};
template <class T>
class List
{
ListItem<T> *head;
public:
// Constructor
List();
// Destructor
~List();
}
ノード内にリンクリストを作成する必要があるので、「StructListItem」では次のようなことをしています。
List<T> dictionary;
しかし、それはエラーを与えています:
"ISO C++ forbids declaration of âListâ with no type"
次に、ノード内に別のリンクリストを作成するにはどうすればよいですか。つまり、一時ポインタが最初のリンクリストの先頭を指していると仮定します。このノード内に別のノード(2番目のリンクリストに属する)を作成するにはどうすればよいですか。私はこのようなものによるかもしれないと思います:
temp->ListItem<T>* secondListNode = new ListItem<T>(item); // I don't know whether
//It would or not as I am stuck in the first part.
これは2D形式を使用して実行する必要があるため、制約に固執してください。この問題に関する他の有用な提案が役立つでしょう。前もって感謝します。