如何在链表中附加类的结构。该类将使用具有dvd标题及其长度的结构。每个DVD将是此结构的一个实例,并将存储在链接列表中。另外,链表应具有结构的数据类型
class DVD
{
private:
struct disc
{
int length;
string title;
}my_disc;
public:
// Constructor
DVD(int, string);
};
链表
template <class T>
class LinkedList1
{
private:
// Declare a structure
struct discList
{
T value;
struct discList *next; // To point to the next node
};
discList *head; // List head pointer
public:
// Default Constructor
LinkedList1()
{ head = NULL; }
// Destructor
~LinkedList1();
// Linked list operations
void appendNode(T);
void insertNode(T);
void deleteNode(T);
void displayList() const;
};
可不可能是
// Declare a DVD object
DVD dvd(105, "Spider Man"); // length and title
// Declare a linked list object with the data type of the struct disc.
LinkedList1<DVD> movie;
// or
LinkList1<DVD::my_disc> movie;
// and then append it
movie.appendNode(dvd)
如果我从
class DVD
中删除了结构,而只是将数据成员length
和title
设置为私有成员,那么我知道LinkedList1<DVD> movie;
将可以附加节点。该结构使我失望。我不明白“链表的数据类型应该是结构”。在我看来,这似乎是LinkedList1<disc>movie;
,因为disc
是该结构的名称。有什么想法吗? 最佳答案
我不明白“链表的数据类型应该是结构”。
我不明白你从哪里得到的。我怀疑这句话中的struct和class是同义词。
DVD和光盘的关系不是“ DVD是光盘”,而是“ DVD包含光盘实例”。
如果“电影”的类型为LinkedList1,则movie.appendNode(spiderman)要求蜘蛛侠的类型为DVD(或可以隐式转换为DVD的类型)。
而且我认为这样做没有问题。实际上,通常就是这样,而DVD内部只有DVD类问题。
关于c++ - 将结构 append 到链表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22184734/