0

我有一个关于结构的问题.. C++ 不是我正在学习的语言,但我需要做练习..

我有一个这样的结构:

struct List
{
    int data;
    List* next;
};

我得到了类和方法,我可以使用它们添加/删除/打印结构的元素,例如查看我得到的方法的元素:

void Kopa::Print()
{
    List *tmp = p;
    while (tmp != NULL)
    {
        cout << tmp->data << endl;
        tmp = tmp->next;
    }
    tmp.struktura;
}

问题是,如何在List结构中添加和访问新结构?我猜它的结构看起来像这样,但我不明白如何使用类方法访问它..

struct List
{
    int data;
    List* next;

    struct NewList
    {
        int data;
        NewList* next;
    };
};
4

2 回答 2

0

这看起来像是链表的实现分配

您的结构看起来像一个节点结构,而不是一个列表。所以我将使用 struct Node 而不是 List 以避免混淆。

我不知道你的 p 来自哪里,但它本质上是你在函数中创建 p 的方式。

Node *p = new Node();
p->data = 1;
p->next = NULL;

现在如果你需要添加一个新的,做同样的事情

Node *q = new Node ();
q->data = 2;
q->next = NULL;
//assign q after p
p->next = q;

您还可以在结构中创建构造函数

Node (Node *previous, int newData)
{
    List *q = new Node ();
    q->data = newData;
    q->next = NULL;
    previous->next = q;
}

确保在完成这些指针后调用 delete 来清理它们

于 2013-10-03T13:38:49.250 回答
0

首先,您必须声明该结构的成员,就像声明其他成员变量一样:

struct List
{
    struct NewList
    {
        int data;
    };

    NewList my_new_list;  // Declare a member
};

然后你像任何其他成员一样使用它,只需根据需要嵌套成员访问:

List l;
l.my_new_list.data = ...;

如果您的意思是如何访问NewList内部结构List以声明局部变量,那么您必须使用范围运算符::

List::NewList new_list;
new_list.data = ...;
于 2013-10-03T13:32:58.847 回答