我试图弄清楚如何计算堆栈中的重复值。
我到目前为止的代码如下。我无法弄清楚如何存储一次,两次或100次记录的值。 假设我有一堆(1,1,1,4,5,3)并且我想计算1次出现的次数。每次在堆栈中计算1时,如何存储?
template <class Object>
int Stack<Object>::count( const Object & data ) const{
StackNode<Object> * node = topNode;
int n = 0;
while (node != NULL) {
if (data == node->getElement())
n++;
node = node->getNext();
}
return n;
}
修改 我已更新了更改后的代码,但仍然不太正确,但更接近
答案 0 :(得分:2)
我会:
然后你差不多正确,除了通常你不能以正常方式迭代堆栈的内容。所以你需要做的是......
这意味着您不需要地图,但它确实意味着您必须传入您想要计算实例的值。
注意:此方法不能为const
,因为您需要调用堆栈类的pop()
和push()
方法。
答案 1 :(得分:0)
最终工作
template <class Object>
int Stack<Object>::count( const Object & data ) const{
StackNode<Object> * node = topNode;
int n = 0;
while (node != NULL) {
if (data == node->getElement())
n++;
node = node->getNext();
}
return (n);
}