1
4
有三个重要错误: push()---固定
我认为通过分配
这样不行。
也,
这真的很糟糕
. 通过设置
Node val=节点(i);
范围
你需要把它放在堆上,这样它就会一直放下去,直到你不再需要它为止。 ... 我们找到了你的毁灭者!既然已经分配了一个节点,就需要取消分配它。所以在析构函数中这样做——遍历列表并释放所有节点。 |
2
1
以下情况会导致未定义的行为:
以后不要忘记删除所有节点。 |
3
0
push()方法不正确。第一次推送节点时,它会正确地将其分配给firstNode,但随后的每一次push()都会将currentNode设置为新节点,然后将currentNode设置为NULL—实际上并没有向列表中添加任何内容。
我不打算为您编写代码,但下面是push()函数的工作方式。关键是您应该将现有节点的“下一个”字段设置为新节点,而不是将currentNode设置为新节点:
您基本上已经完成了第1部分,但是第2部分仍然需要实现。请随时要求澄清/提出批评。:) |
4
0
像这样试试看 Node* val=new Node(i)以前u存储的是临时变量。因此,没有存储动态内存中的ndoe,所以可以给出seprate内存。 创建节点时,它是临时创建的 |
rookie · 检查函数模板的所有参数包参数是否属于int 1 年前 |
ivaigult · -W转换和隐式字符串到布尔类型转换 1 年前 |
rainer · 后台插入程序的初始化 1 年前 |
Community wiki · 以理智、安全和高效的方式复制文件 1 年前 |
Shefali Kanaujia · 对C中向量的向量进行排序++ 1 年前 |
Ma Joonyoung · 粗粒度和细粒度链表的时间比较 1 年前 |