所以我创建这个的原因是因为对于我的C ++类,我们得到了我们必须构建的代码。 (和周围)我的教授写出这些节点的方式令我感到困惑的是他们如何联系起来。
我一直在寻找许多不同的资源,包括用于链接列表的youtube视频以及有关如何拥有临时节点和头节点的那些资源。
struct NodeType
{
int info;
NodeType * link;
};
int main()
{
NodeType *ptr, *list;
ptr = new NodeType;
ptr->info = 16;
ptr->link = nullptr;
list = ptr;
ptr = new NodeType;
ptr->info = 28;
ptr->link = nullptr;
list->link = ptr;
ptr = new NodeType;
ptr->info = 52;
ptr->link = list;
list = ptr;
}
我可视化的方式是:
我们设置list = ptr的地址,以便列表引用ptr
我们创建一个新节点并将数据字段设置为28
我们将节点列表的链接字段指向ptr
我们使用info = 52
这是我想象的样子的形象。 - >
我的问题是,当所有节点彼此指向并且从我的图中指出时,这些节点应该是什么样的,这是错误的。
答案 0 :(得分:2)
在不重新定义任何变量的情况下查看此内容可能会有所帮助。
struct NodeType
{
int info;
NodeType * link;
// Following node
};
int main()
{
NodeType * middle = new NodeType;
middle->info = 16;
// We don't have the next node yet
// middle->link exists as a name,
// and we really should give it a value soon
NodeType * last = new NodeType;
last->info = 28;
last->link = nullptr;
// There is no next node, this is the final node
middle->link = second;
// Good, we have a value for middle->link now
NodeType * first = new NodeType;
first->info = 52;
first->link = middle;
// The next node is already present
NodeType * list = first;
// A pointer is a value we can copy
// Usage and cleanup ommitted
return 0;
}
答案 1 :(得分:1)