I am trying to write a program in C language(code::blocks in windows). I have added below header files, it compiles with no error, but when it comes to run the code it throws an error undefined reference to gotoxy. Find the full code. Error comes where ever I have gotoxy statements.
# include # include # include # include # include #include struct node { int data; struct node *link; }; void append(struct node **,int); void in_begin(struct node **,int); void del(struct node **,int); void in_middle(struct node **,int,int); int count(struct node *); void display(struct node *); char ans; int main() { struct node *p; /* p can be said as the head or a start ptr */ p=NULL; /* Printing the menu */ int num,loc; char choice; do { //clrscr(); printf("PROGRAM TO IMPLEMENT SINGLY LINKED LIST "); printf("\n====================================="); printf("\n\n1.Create \\ Appending The List"); printf("\n2.Insert Node At Begining"); printf("\n3.Insert Node In Middle"); printf("\n4.Deleting a Node"); printf("\n5.Counting The No Of Nodes"); printf("\n6.Displaying the list"); printf("\n7.Exit"); oper: gotoxy(1,15);printf(" "); gotoxy(1,11);printf("\n\nEnter ur Choice : "); choice=getch(); switch(choice) { case '1': // char ans; do { printf("Enter any number : "); scanf("%d",&num); append(&p,num); printf("Enter more (y/n) :"); fflush(stdin); ans=getchar(); }while(ans !='n'); break; case '2': printf("Enter The Data : "); scanf("%d",&num); in_begin(&p,num); break; case '3': printf("\nEnter The Position :"); scanf("%d",&loc); printf("\nEnter The Data : "); scanf("%d",&num); in_middle(&p,loc,num); break; case '4': printf("\nEnter The Data u Want To Delete : "); scanf("%d",&num); del(&p,num); break; case '5': printf("\nThe No Of Nodes Are %d",count(p)); getch(); break; case '6': display(p); getch(); break; case '7': printf("\n\nQuiting......."); getch(); exit(0); break; default: gotoxy(1,15);printf("Invalid choice.Please Enter Correct Choice"); getch(); goto oper; } }while(choice !=7); return 0; } void append(struct node **q,int num) { struct node *temp,*r; temp = *q; if(*q==NULL) { temp = (struct node *)malloc(sizeof(struct node)); temp->data=num; temp->link=NULL; *q=temp; } else { temp = *q; while(temp->link !=NULL) { temp=temp->link; } r = (struct node *)malloc(sizeof(struct node)); r->data=num; r->link=NULL; temp->link=r; } } void display(struct node *q) { if(q==NULL) { printf("\n\nEmpty Link List.Can't Display The Data"); getch(); goto last; } while(q!=NULL) { printf("\n%d",q->data); q=q->link; } last: ; } int count(struct node *q) { int c=0; if(q==NULL) { printf("Empty Link List.\n"); getch(); goto last; } while(q!=NULL) { c++; q=q->link; } last: return c; } void in_begin(struct node **q,int num) { struct node *temp; if(*q==NULL) { printf("Link List Is Empty.Can't Insert."); getch(); goto last; } else { temp=(struct node *)malloc(sizeof(struct node)); temp->data=num; temp->link=*q; *q=temp; /* pointing to the first node */ } last: getch(); } void in_middle(struct node **q,int loc,int num) { struct node *temp,*n; int c=1,flag=0; temp=*q; if(*q==NULL) { printf("\n\nLink List Is Empty.Can't Insert."); getch(); goto last; } else while(temp!=NULL) { if(c==loc) { n = (struct node *)malloc(sizeof(struct node)); n->data=num; n->link=temp->link; temp->link=n; flag=1; } c++; temp=temp->link; } if(flag==0) { printf("\n\nNode Specified Doesn't Exist.Cant Enter The Data"); getch(); } else { printf("Data Inserted"); getch(); } last: getch(); } void del(struct node**q,int num) { if(*q==NULL) { printf("\n\nEmpty Linked List.Cant Delete The Data."); getch(); goto last; } else { struct node *old,*temp; int flag=0; temp=*q; while(temp!=NULL) { if(temp->data==num) { if(temp==*q) /* First Node case */ *q=temp->link; /* shifted the header node */ else old->link=temp->link; free(temp); flag=1; } else { old=temp; temp=temp->link; } } if(flag==0) printf("\nData Not Found..."); else printf("\nData Deleted...Tap a key to continue"); getch(); } last: getch(); }
Please help me.