ich hier versuchen, die Anzahl des wiederholten Auftretens in verketteten Liste zu zählenZählen Sie die Anzahl des wiederholten Auftretens
so dass, wenn mein Code Anzeige (3 a, 2 c, 1 a) wenn ich bin Fütterung es die Liste a-> a-> a-> c-> c-> eine
class Node
{
public:
char letter;
Node * next;
Node();
Node(char);
};
Unter Verwendung der folgenden Funktion ich die Ereignisse zählen verwaltet, aber nicht so, wie ich gewünscht.
int Count(Node* h, char searchFor)
{
int count=0;
while(h)
{
if(h->letter==searchFor)
count++;
h=h->next;
}
return count;
}
in der Hauptfunktion
cout<<"a "<<Count(h, 'a')<<" c "<<Count(h,'c')<<"a "<<Count(h, 'a')<<endl;
Willen Ausgang (A 3, C 2, a 3), die nicht (a 3, C 2, a 1)
Wie kann ich den Pass Kopf so zu funktionieren, dass es Zählungen aller Knoten mit ähnlichen Zeichen zurückgibt?
Wie beurteilen Sie den zweiten Anruf 'Count erwarten (h,‚a‘)' auf eine andere Antwort auf die erste geben Anruf? Es beginnt am selben Ort und betrachtet dieselben Knoten. –
Related: Denken Sie daran, dass Funktionsargumente nicht in einer bestimmten Reihenfolge vollständig ausgewertet werden müssen. Da die 'operator <<' Implementation effektiv eine Funktion ist, können die drei 'Count()' Aufrufe * in beliebiger Reihenfolge passieren. * Das ist momentan nicht dein Problem, aber es ist möglich, dass dein Fix diese Möglichkeit nicht berücksichtigt. – cdhowie
Sie müssen Logik hinzufügen, so dass count nur eine Antwort größer als null zurückgibt, wenn Sie mindestens 2 aufeinanderfolgende Zeichen erhalten, die mit searchFor identisch sind. – HughB