コードは次のとおりです。
#include "DynIntStack.h"
DynIntStack::DynIntStack(void)
{
}
DynIntStack::~DynIntStack(void)
{
}
bool DynIntStack::IsEmpty()
{
return head;
}
void DynIntStack::Push(int v)
{
Element e = Element(v, head);
head = &e;
}
int DynIntStack::Pop()
{
if(head)
{
int r = head->v;
head = head->next;
return r;
}
}
int DynIntStack::Top()
{
if(head)
return head->v;
}
string DynIntStack::Print()
{
stringstream ss;
ss << "IntStack {";
Element *k = head;
while (k)
{
ss << k->v << ", ";
k = k->next;
}
ss << "}";
return ss.str();
}
「ヘッド」ポインターは、プッシュを呼び出すたびにその値を失うようです。なんで?多くの場合、ヘッド要素には ITSELF へのポインターが含まれますが、これはこのコードでは不可能です...