我在这里尝试计算链表中重复出现的次数
这样当我的代码显示(3 a,2 c,1 a)时,如果我喂它 列表 a-> a-> a-> c-> c-> a
class Node
{
public:
char letter;
Node * next;
Node();
Node(char);
};
使用以下功能,我设法计算出现次数,但不是我想要的方式。
int Count(Node* h, char searchFor)
{
int count=0;
while(h)
{
if(h->letter==searchFor)
count++;
h=h->next;
}
return count;
}
在主要功能
中 cout<<"a "<<Count( h, 'a')<<" c "<<Count(h,'c')<<"a "<<Count( h, 'a')<<endl;
将输出(a 3,c 2,a 3)而不是(a 3,c 2,a 1)
如何将头部传递给函数,使其返回具有相似字符的所有节点的计数?
答案 0 :(得分:0)
看起来你不想算所有的字符,试试这个:
int Count(Node* h, char searchFor)
{
int count=0;
while(h)
{
if(h->letter==searchFor) {
++count;
}
else if(count > 0) {
break;
}
h=h->next;
}
return count;
}