Не верное выведение строки с нужным элементом из очереди через связный список
у меня такая проблема, существует 3 типа строк (типа: 1 В 14) в очереди (определяются по их номеру №1, №2, №3), а так же группирование по второму символу (пример: 1 В 14 и 1 S 13). Так вот мне нужно вывести данные в трех секциях по номеру, а так же мне нужны строки исключительно содержащие второй знак В, но выводятся строки как с В, так и с S.
Вот такой вот код на вывод данных, Секции по номеру у меня выводятся без проблем, а вот по буквам нет, не знаю в чем проблема. Пробовал уже создавать другой узел и перетягивать данные из головы, но при условии, что узел type будет иметь тип 'B'
void Queue::stat() {
Node* ptr = front;
while (ptr != NULL) {
if (ptr->key == 1) {
cout << "Item " << ptr->key << endl;
for (int i = 0; i < count2(front); i++) {
cout << "\t" << ptr->type << " " << ptr->quantity << endl;
ptr = ptr->next;
}
return;
}
else if (ptr->key == 2) {
cout << "Item " << ptr->key << endl;
for (int i = 0; i < count(front); i++) {
cout << "\t" << ptr->type << " " << ptr->quantity << endl;
ptr = ptr->next;
}
return;
}
else if (ptr->key == 3) {
cout << "Item " << ptr->key << endl;
for (int i = 0; i < count(front); i++) {
cout << "\t" << ptr->type << " " << ptr->quantity << endl;
ptr = ptr->next;
}
return;
}
}
}
Есть подозрения в функции for которая подсчитывает данные в перовой, второй, третьей группе.
int Queue::count(Node* front) {
Node* current = front;
int ccount = 0;
while (current != NULL) {
if (current->key)
ccount++;
current = current->next;
}
return ccount;
}