Computer Science Canada error in program |
Author: | kalpesh [ Tue Dec 08, 2009 12:53 pm ] |
Post subject: | error in program |
Hi friends, I've created code for linked list but it having some errors at adding node at end. so would you please fix it? .............. #include<stdlib.h> #include<iostream.h> #include<stdio.h> struct list { int info; struct list *next; }; typedef struct list list; list *start=NULL,*new1; void insert(); void remove(); void display(); void main() { int choice; for( ; ; ) { cout<<"\n1 insert\n2 remove\n3 display\n4 exit"; cin>>choice; switch(choice) { case 1:insert(); break; case 2:remove(); break; case 3:display(); break; case 4:exit(0); break; } } } void insert() { list *create_node(); list *ptr; new1=create_node(); void addnode(); addnode(); } list *create_node() { list *new1; new1=(list*)malloc(sizeof(list)); cout<<"\nEnter the info part:"; cin>>new1->info; new1->next=NULL; return new1; } void addnode() { list *prev,*ptr; if(start==NULL) { start=new1; ptr=new1; return; } else if(start->info>new1->info) { new1->next=start; start=new1; return; } for(prev=start,ptr=start->next;ptr;prev=ptr,ptr=ptr->next) { if(ptr->info>new1->info) { prev->next=new1; new1->next=ptr; } if(prev->next==NULL) { prev->next=new1; ptr=prev->next; } } } void remove() { list *prev,*ptr,*temp; int info; cout<<"\nEnter the number to be deleted"; cin>>info; if(start->info==info) { temp=start; start=start->next; cout<<"\n"<<temp->info<<" is deleted"; free(temp); return; } for(prev=start,ptr=start->next;ptr;prev=ptr,ptr=ptr->next) { if(ptr->info==info) { temp=ptr; ptr=ptr->next; cout<<"\n"<<temp->info<<" is deleted"; free(temp); } } } void display() { list *ptr; for(ptr=start;ptr;ptr=ptr->next) { cout<<"\nList is----- "<<ptr->info<<" "; } } |