【发布时间】:2013-11-05 19:42:29
【问题描述】:
我试图弄清楚如何清除堆栈(以链表的形式)。链表不是我的强项。我完全不理解他们。这是我的代码,任何人都可以解释为什么它不起作用?当我尝试通过 main 中的开关调用该方法时,它似乎也陷入了无限循环。
void stack :: clearStack()
{
if (isEmpty()== true)
{
cout << "\nThere are no elements in the stack. \n";
}
else
{
node *current = top;
node *temp;
while(current != NULL);
{
current = temp -> next;
delete current;
current = temp;
}
}
}
【问题讨论】:
-
看起来你正在使用
temp而不需要初始化。 -
我认为你应该多阅读并尝试更好地理解它们
-
for(node *p=top,*t; p ; p=t ) t=p->next, delete p; -
while 末尾的分号也无济于事......下面的大多数答案只是复制了它,因此它们也不起作用。
标签: c++ list linked-list stack