1
我对我的代码有麻烦。调用链表似乎没有得到“更新”的值或他们没有保存或什么的。可以使用一些帮助,谢谢。插入到链表的前面
template <class T>
void LinkedList<T>::insert_front(const T& x)
{
LinkedList* p = this;
LinkedList* tmp = new LinkedList(x,p);
p = tmp;
cout<<p->m_data<<endl;
cout<<tmp->m_data<<endl;
调用函数是
//TEST : Inserting 10 numbers to a
cout << endl << "TEST : Inserting 10 numbers to A" << endl;
for (int k=0; k<10; k++){
A.insert_front(k+1);
}
cout << A << endl;
cout << "Size of a = " << A.size() << endl;
我得到的1122334455667788991010 输出,该输出tmp的数据值和P数据值每次调用 值去的代码,他们是正确的值,就在我去打印时没有显示任何东西只是一个空的列表。谢谢,我是新来的,但热爱社区。
您的链接列表的概念是有缺陷的。链表有一个头*指针*,指向头*节点*。如果你写的是分配一个新的节点,让它指向下一个'this',然后立即泄漏该分配。最后,你有一堆泄漏的内存和一个头节点,它指向什么也没有开始:一个不确定的值和一个无用的下一个指针。 – WhozCraig