Определить количество элементов списка, для которых сумма предыдущих элементов меньше суммы следующих за ним элементов + вывести эти элементы и суммы
У меня есть структура:
typedef struct SNum
{
int num;
SNum * next;
SNum * prev;
} TSNum;
TSNum * Start;
Я её заполняю рандомными числами с помощью функции. Потом с помощью меню выбираю операцию над этой структурой. Одна из них - определить количество элементов, для которых сумма предыдущих элементов меньше суммы следующих за ним элементов, потом вывести эти элементы и суммы с двух сторон на экран. Я написал эту функцию, но она не работает, сразу вылетает консоль при её вызове. Подскажите пожалуйста, где я допустил ошибку. Вот моя функция:
void sumElemCompar(TSNum * &Start)
{
int leftSum, rightSum;
TSNum * wp;
wp=Start;
while(wp!=NULL)
{
rightSum+=wp->num;
wp=wp->next;
}
wp=Start;
while(wp!=NULL)
{
leftSum+=wp->prev->num;
rightSum-=wp->num;
if(leftSum<rightSum)
{
cout <<"Элемент "<< wp->num << ": сумма слева - "
<< leftSum <<"меньше правой - "<< rightSum << endl;
}
}
wp=wp->next;
}
Источник: Stack Overflow на русском