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:
Thanks in advance for any help!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



LinkBack URL
About LinkBacks




!