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; }
int main() { struct node *front, *rear; front=rear=NULL; addatend(&front, &rear, 10); //10 qdisplay(front); addatbeg(&front, &rear, 20); //20 10 qdisplay(front); addatbeg(&front, &rear, 30); //30 20 10 qdisplay(front); addatend(&front, &rear, 5); //30 20 10 5 qdisplay(front); delbeg(&front, &rear); //20 10 5 qdisplay(front); delend(&front, &rear); //20 10 qdisplay(front); getch(); }
/* adds a new node at the end of the linked list */ void addatend ( struct node **s, int num ) { if ( *s == NULL ) { *s = malloc ( sizeof ( struct node ) ) ; ( *s ) -> data = num ; ( *s ) -> link = NULL ; } else addatend ( &( ( *s ) -> link ), num ) ; }
void EvenOdd(struct node *start1,struct node **start2,struct node **start3 ) { struct node *p1=start1, *p2=*start2, *p3=*start3; while(p1!=NULL) { if( (p1->info)%2 != 0 ) { if(*start2==NULL) *start2 = addatbeg(*start2,p1->info); else *start2 = addatend(*start2,p1->info); } else { if(*start3==NULL) *start3 = addatbeg(*start3,p1->info); else *start3 = addatend(*start3,p1->info); } p1=p1->link; } }/*End of EvenOdd()*/
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; printf("Enter the element to be inserted : "); scanf("%d",&data); start=addatbeg(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()*/
void main( ) { struct node *p ; p = NULL ; addatend ( &p, 1 ) ; addatend ( &p, 2 ) ; addatend ( &p, 3 ) ; addatend ( &p, 4 ) ; addatend ( &p, 5 ) ; addatend ( &p, 6 ) ; addatend ( &p, 10 ) ; clrscr( ) ; display ( p ) ; }
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()*/