How come void del_begin()
crashes when there's only one node left (I have other functions to add nodes)?
#include <iostream>
using namesspace std;
node *start_ptr = NULL;
node *current;
int option = 0;
void del_end()
{
node *temp, *temp2;
temp = start_ptr;
if (start_ptr == NULL)
cout << "There are no nodes" << endl;
else
{
while (temp->nxt != NULL)
{
temp2 = temp;
temp = temp->nxt;
}
delete temp;
temp2->nxt = NULL;
}
}
void display()
{
node *temp;
temp = start_ptr;
cout << endl;
if (temp == NULL)
cout << "There are no nodes to display" << endl;
else
{
while(temp != NULL)
{
cout << temp->name << ", " << temp->profession << ", " << temp->age;
if (temp == current)
cout << "***";
cout << endl;
temp = temp->nxt;
}
cout << endl;
}
}
int main()
{
start_ptr = NULL;
int option;
do
{
display();
cout << "0 for EXIT" << endl;
cout << "1 to ADD TO END" << endl;
cout << "2 to ADD TO BEGINNING" << endl;
cout << "3 to DELETE LAST" << endl;
cout << "4 to DELETE BEGINNING" << endl;
cout << ">>";
cin >> option;
switch (option)
{
case 1 : add_end(); break;
case 2 : add_begin(); break;
case 3 : del_end(); break;
case 4 : del_begin(); break;
}
}
while (option != 0);
return 0;
}