【发布时间】:2018-08-02 15:30:58
【问题描述】:
我正在尝试使用链接列表来实现堆栈。我的程序不断崩溃,当尝试打印新的链接列表时,它会打印一个无符号整数。我的打印功能很好,所以下面是这个功能。
请帮忙。
void LinkedList::Push (int val)
{
Node* newHead = new Node;
Node* oldHead = new Node;
newHead->value = val;
oldHead = head;
head = newHead;
oldHead->prev = head;
head->next = oldHead;
delete newHead;
}
【问题讨论】:
-
什么是
head?无论如何,你有内存泄漏,因为oldHead永远不会得到deleted -
你确实知道std::stack已经存在,对吧?
-
@JesperJuhl 我认为 OP 正在尝试实现链表,而不是堆栈。但我猜这无论如何都是一项家庭作业,所以这就是他们“重新发明轮子”的原因。
-
我假设您正在尝试
push_front:new_node->next = head; head = new_node; -
你有内存泄漏:
oldHead = head;。顺便说一句,您无需分配对象即可使用指针。
标签: c++ linked-list stack