Найти и удалить повторяющиеся несколько раз элементы в стеке и найти количество оставшихся
мне нужно найти и удалить повторяющиеся несколько раз элементы в стеке и найти количество оставшихся. функция не работает, как ее исправить?
PushStack - добавление элемента в стек TopToTo - дополнительная процедура перекладывания элемента из одного стека в другой
TElem* Decide(TElem** PSt1, TElem* St2) {
TElem* St1 = *PSt1, * Dop = NULL;
St2 = FreeStack(St2);
int N = 0;
while (St1) {
St2 = PushStack(St2, St1->data);
TopToTop(&St1, &Dop);
if (St1->data == St2->data) {
delete St1;
delete St2;
}
else TopToTop(&St1, &Dop);
N++;
}
while (Dop) TopToTop(&Dop, &St1);
if (N) printf("Количество оставшихся\n", N);
else printf("Стек пуст\n");
printf("Press any key to continue");
getch();
*PSt1 = St1;
return St2;
}