struct node *sum(struct node *start1, struct node *start2, struct node *start3 ) { int carry, total, num; struct node *p, *q; carry = 0; p=start1; q=start2; while(p!=NULL && q!=NULL) { total = p->info + q->info + carry; num = total % 10000; carry = total / 10000; if(start3 == NULL) start3 = addtoempty(start3, num); else start3 = addatend(start3, num); p=p->next; q=q->next; } while(p!=NULL) { total = p->info + carry; num = total % 10000; carry = total / 10000; if(start3 == NULL) start3 = addtoempty(start3, num); else start3 = addatend(start3, num); p=p->next; } while(q!=NULL) { total = q->info + carry; num = total % 10000; carry = total / 10000; if(start3 == NULL) start3 = addtoempty(start3, num); else start3 = addatend(start3, num); q=q->next; } if(carry == 1) start3 = addatend(start3, carry); return start3; }
struct node *create(struct node *start, char *str) { int i,j,num,x=0; char temp[100]; i=strlen(str)-1; while(i!=-1) { if(i<3) { j=i; x=i+1; } else j=3; while( j!=-1 && i!=-1 ) { temp[j]=str[i]; j--; i--; } if(x==0 ) temp[4]='\0'; else temp[x]='\0'; sscanf(temp, "%d",&num); if(start == NULL) start = addtoempty(start, num); else start = addatend(start, num); } return start; }
struct listnode *create_list(struct listnode *start, int n) { int i,data; start=NULL; for(i=1;i<=n;i++) { printf("Enter the element to be inserted : "); scanf("%d",&data); if(start==NULL) start=addtoempty(start,data); else start=addatend(start,data); } return start; }/*End of create_list()*/
struct node *create_list(struct node *start) { int i,n,data; printf("Enter the number of nodes : "); scanf("%d",&n); start=NULL; if(n==0) return start; printf("Enter the element to be inserted : "); scanf("%d",&data); start=addtoempty(start,data); for(i=2;i<=n;i++) { printf("Enter the element to be inserted : "); scanf("%d",&data); start=addatend(start,data); } return start; }/*End of create_list()*/
struct node *create_list(struct node *last) { int i,n; int data; printf("Enter the number of nodes : "); scanf("%d",&n); last=NULL; if(n==0) return last; printf("Enter the element to be inserted : "); scanf("%d",&data); last=addtoempty(last,data); for(i=2;i<=n;i++) { printf("Enter the element to be inserted : "); scanf("%d",&data); last=addatend(last,data); } return last; }
main() { int choice,data,item; struct node *start=NULL; while(1) { printf("1.Create List\n"); printf("2.Display\n"); printf("3.Add to empty list\n"); printf("4.Add at beginning\n"); printf("5.Add at end\n"); printf("6.Add after\n"); printf("7.Add before\n"); printf("8.Delete\n"); printf("9.Reverse\n"); printf("10.Quit\n"); printf("Enter your choice : "); scanf("%d",&choice); switch(choice) { case 1: start=create_list(start); break; case 2: display(start); break; case 3: printf("Enter the element to be inserted : "); scanf("%d",&data); start=addtoempty(start,data); break; case 4: printf("Enter the element to be inserted : "); scanf("%d",&data); start=addatbeg(start,data); break; case 5: printf("Enter the element to be inserted : "); scanf("%d",&data); start=addatend(start,data); break; case 6: printf("Enter the element to be inserted : "); scanf("%d",&data); printf("Enter the element after which to insert : "); scanf("%d",&item); start=addafter(start,data,item); break; case 7: printf("Enter the element to be inserted : "); scanf("%d",&data); printf("Enter the element before which to insert : "); scanf("%d",&item); start=addbefore(start,data,item); break; case 8: printf("Enter the element to be deleted : "); scanf("%d",&data); start=del(start,data); break; case 9: start=reverse(start); break; case 10: exit(1); default: printf("Wrong choice\n"); }/*End of switch*/ }/*End of while*/ }/*End of main()*/