Я сталкиваюсь со странной ошибкой в некоторой домашней работе, из-за которой я делаю стек со связанным списком. Все функции в моей программе работают отлично, даже в начале, когда у меня нет узлов, или после удаления нескольких. Но когда я создаю узлы и удаляю их все, чтобы вернуться к нулю, каждая функция вызывает сбой. Я пытался исследовать проблему, но решения, которые я нашел, выглядят почти идентичными тем, что у меня уже есть, поэтому, очевидно, есть что-то критическое, чего я не вижу.
Вот функция удаления узла (, которую я подозреваю во всем этом)
void remove(node** root)
{
node* temp = *root;
node* previous = 0;
if(*root)
{
while((*root)->next)
{
previous = *root;
*root = (*root)->next;
}
delete *root;
*root = temp;
if(previous)
{
previous->next = 0;
}
}
else
{
std::cout<<"cannot delete items from empty list\n";
}
}
Вот функция вставки узла
void insert(node** root)
{
node* temp = *root;
if(*root)
{
while((*root)->next)
{
(*root) = (*root)->next;
}
(*root)->next = new node;
(*root)->next->data = getnum();
(*root)->next->next = 0;
*root = temp;
}
else
{
(*root) = new node;
(*root)->data = getnum();
(*root)->next = 0;
}
}
Я почти уверен, что проблема кроется где-то в коде, на который я дал ссылку, но на всякий случай вот вставка полного заданияhttp://pastebin.com/AWtG4qjD