为了将其打印出来,我已经很难重新填充堆栈了。我正在使用节点实现,所以我认为这是令我困惑的事实。任何建议,将不胜感激,谢谢。使用节点实现的重新填充堆栈
这是我原来的堆栈::打印()
// Function to print Gumball info field (color and counter)
void Stack::print()
{
Node *p;
Type x;
while(top != NULL) {
p = top;
x = p -> getinfo();
cout << " " << x.color << " " << " " << x.counter << endl << endl;
top = p -> getnext();
}
return;
}
This is my stack with my attempt to loop and store in temp. It compiles but still is not working as suppose to
void Stack::print() { Node *p,*q; Type x,x_temp; while(top != NULL) { p = top; x = p -> getinfo(); cout << " " << x.color << " " << " " << x.counter << endl << endl; x_temp = x; q = top; top = p -> getnext(); } while(top != NULL) { q -> setinfo(x_temp); q -> setnext(top); top = q; } return; }
'top'是一个成员变量吗?如果是这样,你为什么要在'print'中修改它? 'print'应该保持你的栈不变。 –
我试图只修改它来打印堆栈,然后将所有东西都还原回原来的....基本上从顶部获取信息,打印它然后移动到下一个口香糖。之后,我想将所有的东西从临时堆栈移回原来的顺序。 – 123me