好吧,伙计们,所以我知道pop功能是如何工作的。我也知道我需要设置一个LinkNode * top = head,如果top == NULL,你需要返回NULL。我只是不确定我之后应该做些什么。返回应该删除并返回一个值,函数的数据类型是一个指针。
我不打算在这里发布我的代码,除非人们老老实实地帮助我,因为我已经被批评过一次而且非常令人沮丧。 :\
答案 0 :(得分:1)
“我...知道我需要设置一个LinkNode * top = head,如果你需要top == NULL 返回NULL。我只是不确定在那之后我应该做什么。“
嗯,你提到的事情与pop
无关。
对于链接列表,pop
是关于取消第一个节点的链接。根据抽象级别,函数可能返回(指向)该节点或节点的“值”,或者什么也不返回。在最低抽象级别,您只需要unlink功能,可以这样:
struct Node
{
Node* next;
double value;
};
Node* unlinked( Node*& p )
{
Node* const result = p;
p = p->next;
return result;
}
然后,作为示例,销毁节点的pop
如下:
void pop( Node*& first )
{
delete unlinked( first );
}
虽然返回节点中的值的pop
如下所示:
double pop( Node*& first )
{
std::unique_ptr<Node> p( unlinked( first ) );
return p->value;
}
这里的一个细微之处在于是否保证在销毁节点之前复制该值。我只是假设它是。我把它留给律师来找到这方面的标准。
干杯&amp;第h