Hi I am merely trying to insert several nodes into a predefined linked list and the second call to the insert function always messes up for some odd reason. I try to find the error by debugging but Microsoft Visual C++ 6.0 pops up aan error when trying to access the second call to the function. Here is the code:
Code:
#include <iostream>
using namespace std;
struct entry
{
int value;
entry* next;
};
void printList(const entry*);
entry* insert(int n, entry* h);
entry* deleteNode(int n, entry* h);
int main()
{
entry n1, n2, n3, n4, n5, n6, n7, n8, n9, n10;
n1.value = 2;
n2.value = 6;
n3.value = 9;
n4.value = 13;
n5.value = 22;
n6.value = 25;
n7.value = 30;
n8.value = 35;
n9.value = 40;
n10.value = 50;
n1.next = &n2;
n2.next = &n3;
n3.next = &n4;
n4.next = &n5;
n5.next = &n6;
n6.next = &n7;
n7.next = &n8;
n8.next = &n9;
n9.next = &n10;
n10.next = 0;
entry* head = &n1;
head = deleteNode(25, head);
head = deleteNode(50, head);
head = deleteNode(2, head);
head = insert(17, head);
head = insert(75, head);//problem occurs when trying to execute this line
//head = insert(1, head);
printList(head);
return 0;
}//main
/***************************************/
void printList(const entry* pointer)
{
while(pointer != 0)
{
cout << pointer << " " << pointer->value << " " << pointer->next << endl;
pointer = pointer->next;
}//while
}//printList
/***************************************/
entry* insert(int n, entry* h)
{
if(h->value < n)
{
entry* prev = h;
entry* temp = h;
while(temp->value < n)
{
prev = temp;
temp = temp->next;
}//while
temp = new entry;
temp->value = n;
temp->next = prev->next;
prev->next = temp;
return h;
}//if
else// if h->value >= n
{
entry* temp = h;
temp = new entry;
temp->value = n;
temp->next = h;
h = temp;
return h;
}//else
}//insert
/***************************************/
entry* deleteNode(int n, entry* h)
{
if(h->value == n)
{
h = h->next;
return h;
}//if
else
{
entry* prev = h;
entry* temp = h;
while(temp->value != n)
{
prev = temp;
temp = temp->next;
}//while
prev->next = temp->next;
return h;
}//else
}//deleteNode
Thanks in advance for any help!