计算重复出现的次数

时间:2017-05-08 18:36:01

标签: c++ linked-list

我在这里尝试计算链表中重复出现的次数

这样当我的代码显示(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)

如何将头部传递给函数,使其返回具有相似字符的所有节点的计数?

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;
        }