【问题标题】:Appending a structure to a linked list将结构附加到链表
【发布时间】:2014-04-06 17:49:11
【问题描述】:

如何在链表中附加一个类的结构。 该类将使用具有 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 中删除结构并将数据成员lengthtitle 作为私有成员,那么我知道LinkedList1&lt;DVD&gt; movie; 可以附加节点。结构让我失望。我不明白“链表的数据类型应该是struct”。对我来说这似乎是LinkedList1&lt;disc&gt;movie;,因为disc 是结构的名称。有什么想法吗?

【问题讨论】:

    标签: c++ linked-list append structure


    【解决方案1】:

    我不明白“链表的数据类型应该是struct”。

    我不明白你从哪里得到的。我怀疑这句话中 struct 和 class 是同义词。

    1. DVD 和光盘的关系不是“DVD 光盘”,而是“DVD 包含光盘实例”。
    2. 如果“movies”的类型为 LinkedList1,则 movies.appendNode(spiderman) 要求 spiderman 的类型为 DVD(或可以隐式转换为 DVD)。
    3. 我认为这样做没有问题。其实平时都是这么干的,DVD里面只有DVD类的问题。

    【讨论】:

    • 这些是我的导师给我的指示,但我明白了。
    • “链表的数据类型应该是struct”翻译成“模板参数将被专门化为DVD”,其中“数据类型”被用作“the data type”的同义词列表节点的内容类型”和“结构”被用作分配文本中定义的特定结构DVD 的同义词。一个很好的提醒,在教授(尤其是)初学者时,准确的措辞是必不可少的。
    猜你喜欢
    • 2020-10-01
    • 2016-11-17
    • 1970-01-01
    • 2011-08-18
    • 2017-03-28
    • 2021-11-27
    • 2021-07-03
    • 2021-01-01
    • 1970-01-01
    相关资源
    最近更新 更多