Posts

Add two very large number using linked list

/*this program will add two large number(any number of digits)*/ #include<stdio.h> #include<stdlib.h> typedef struct linked { int val; struct linked *next; }lnk; lnk *create(); lnk *add(lnk *,lnk *); void disp(lnk *); int main() { lnk *h1,*h2,*h3; printf("\n\nEnter the first large number : "); h1=create(); printf("\n\nEnter the second large number : "); h2=create(); h3=add(h1,h2); printf("\n\nResultant number : "); disp(h3); return 0; } lnk *create() { int a,m; lnk *temp,*h=NULL; char ch; while((ch=getch())!=13) { printf("%c",ch); temp=(lnk*)malloc(sizeof(lnk)); temp->val=ch-'0'; temp->next=h; h=temp; } return h; } lnk *add(lnk *h1,lnk *h2) { lnk *h3=NULL,*temp,*ptr; int cr,t=0; while(h1!=NULL && h2!=NULL) { t=h1->val+h2->val+t; cr=t%10; temp=(lnk *)malloc(sizeof(lnk)); temp->val=cr; temp->next=h3; h3=temp; t=t/10; h1=h1->next; h2=h2->next; } if(h1!=NULL && h2==NULL) { while(h1!=NULL)...

Insertion sort

Image
/* Sort an array using Insertion sort */ #include<stdio.h> int main() { int a[100],n,m,i,t; printf("Enter the number of elements : "); scanf("%d",&m); printf("Enter the values : "); for(i=0;i<m;i++) { scanf("%d",&a[i]); } printf("\nValues in the array are : "); for(i=0;i<m;i++) printf("%d,",a[i]); for(i=0;i<m;i++) { t=i-1; n=a[i]; while(t>=0 && a[t]>n) { a[t+1]=a[t]; t--; } a[t+1]=n; } printf("\nAfter arrangement : "); for(i=0;i<m;i++) printf("%d,",a[i]); printf("\n\n\n"); }

Array rearrangement

Image
/* Arrange the elements of the array in such a way so that negative elements will be in one side and positive elements will be in another side. But don't hamper its respective order */ #include<stdio.h> int main() { int a[7],n,m,i,t; printf("Enter the number of elements : "); scanf("%d",&m); printf("Enter the values : "); for(i=0;i<m;i++) { scanf("%d",&a[i]); } printf("\nValues in the array are : "); for(i=0;i<m;i++) printf("%d,",a[i]); for(i=0;i<m;i++) { if(a[i]<0) { t=i-1; n=a[i]; while(t>=0 && a[t]>0) { a[t+1]=a[t]; t--; } a[t+1]=n; } } printf("\nAfter arrangement : "); for(i=0;i<m;i++) printf("%d,",a[i]); printf("\n\n\n"); }

Binary Search Tree Mirror Image creation......

/*Binary Search Tree with Mirror Image Conversion of the original Tree ... */ #include<stdio.h> #include<stdlib.h> typedef struct BinarySearchTree { struct BinarySearchTree *left; struct BinarySearchTree *right; int val; }bst; typedef struct Queue { bst *val; struct Queue *next; }qu; void enqueu(qu **,bst *); bst *dequeu(qu **); int isempty(qu *); bst * create(bst *,int); void inorder(bst *); void preorder(bst *); void postorder(bst *); void levelorder(bst *); void mirimg(bst *); int main() { bst *root=NULL; int g,ch; while(1) { printf("\n\n 1) Insert\n 2) Preorder traversal\n 3) Inorder traversal\n 4) Postorder traversal\n 5) Level Order Traversal\n 6) Construct Mirro Image of the tree\n 7) Exit"); printf("\n\n Enter your choice : "); scanf("%d",&ch); switch(ch) { case 1: printf("\nInsert value for the tree: "); scanf("%d",&g); root=create(root,g); break; c...

Binary Search Tree With Level Order Traversal

Image
/*Binary Search Tree with level order traversal ... Queue for level order traversal is implemented using linked list*/ #include<stdio.h> #include<stdlib.h> typedef struct BinarySearchTree { struct BinarySearchTree *left; struct BinarySearchTree *right; int val; }bst; typedef struct Queue { bst *val; struct Queue *next; }qu; void enqueu(qu **,bst *); bst *dequeu(qu **); int isempty(qu *); bst * create(bst *,int); void inorder(bst *); void preorder(bst *); void postorder(bst *); void levelorder(bst *); int main() { bst *root=NULL; int g,ch; while(1) { printf("\n 1) Insert\n 2) Preorder traversal\n 3) Inorder traversal\n 4) Postorder traversal\n 5) Level Order Traversal\n 6) Exit"); printf("\n Enter your choice : "); scanf("%d",&ch); switch(ch) { case 1: printf("\nInsert value for the tree: "); scanf("%d",&g); root=create(root,g); break; case 2: printf("\nValues in...

Different functions of Linked List using menu driven approach

/*insertend(),inserbef(),insertatpos() functions are used to create a linked using its position value,del() function will delete the element you have specified,disp() function is used to display the elements in the linked list*/ #include<stdio.h> #include<stdlib.h> typedef struct Linked { int val; struct Linked *next; }lnk; lnk* insertbeg(lnk *,int); lnk* insertend(lnk *,int); lnk *insertatpos(lnk *,int,int); lnk *del(lnk *,int); void disp(lnk *); int main() { lnk *head=NULL; int ch,v,p; while(1) { printf("\n1)Insert End\n2) Insert begining\n3)Insert at Position\n4)Delete\n5)Display\n6)Exit"); printf("\n Enter your choice : "); scanf("%d",&ch); switch(ch) { case 1: printf("\nEnter the value to be inserted : ");  scanf("%d",&v);  head=insertend(head,v);  break; case 2: printf("\nEnter the value to be inserted : ");  scanf("%d",&v);  head=insertbeg(head,v);  b...

Linked list created and there after elements are displayed

Image
#include<stdio.h> #include<stdlib.h> typedef struct Linked { int val; struct Linked *next; }lnk; lnk* createlink(); void disp(); int main() { lnk *head; head=createlink(); printf("Values in the linked list :: "); disp(head); } lnk *createlink() { lnk *h=NULL,*tmp,*ptr; char ch; int v; while(1) { printf("\nEnter the value for the node (enter -99 to exit) : "); scanf("%d",&v); if(v==-99) return h; tmp=(lnk *)malloc(sizeof(lnk)); tmp->val=v; tmp->next=NULL; if(h==NULL) h=tmp; else ptr->next=tmp; ptr=tmp; } } void disp(lnk *h) { while(h!=NULL) { printf("%d,",h->val); h=h->next; } printf("\b"); }