TO DOWNLOAD MORE DATA STRUCTURE PROGRAM'S CLICK HERE:-DATA_STRUCTURE_PROGRAMS
Data structure is a particular way of storing and organizing information in a computer so that it can be retrieved and used most productively.
Data structures are important for the following reasons:
1. Data structures are used in almost every program or software system.
2. Specific data structures are essential ingredients of many
1. Stack Implementation(All operations)
#include<stdio.h> #include<stdlib.h> #define MAX_SIZE 5 int stack[MAX_SIZE]; void push(); int pop(); void traverse(); int is_empty(); int top_element(); int top = -1; main() { int element, choice; clrscr(); do { clrscr(); printf("Stack Operations.\n"); printf(" 1. Insert into stack (Push operation).\n"); printf(" 2. Delete from stack (Pop operation).\n"); printf(" 3. Print top element of stack.\n"); printf(" 4. Check if stack is empty.\n"); printf(" 5. Traverse stack.\n"); printf(" 6. Exit.\n"); printf("Enter your choice : "); scanf("%d",&choice); switch ( choice ) { case 1: clrscr(); if ( top == MAX_SIZE - 1 ) printf("Error: Stack is Overflow\n\n"); else { printf("Enter the value to insert : "); scanf("%d",&element); push(element); } getch(); break; case 2: clrscr(); if ( top == -1 ) printf("Error: Stack is Underflow.\n\n"); else { element = pop(); printf("Element removed from stack is = %d ", element); } getch(); break; case 3: clrscr(); if(!is_empty()) { element = top_element(); printf("Element at the top of stack is %d\n\n", element); } else printf("Stack is empty.\n\n"); getch(); break; case 4: clrscr(); if(is_empty()) printf("Stack is empty.\n\n"); else printf("Stack is not empty.\n\n"); getch(); break; case 5: clrscr(); traverse(); getch(); break; case 6: exit(0); } } while(choice!=6); } void push(int value) { top++; stack[top] = value; } int pop() { int element; if ( top == -1 ) return top; element = stack[top]; top--; return element; } void traverse() { int d; if ( top == - 1 ) { printf("Stack is empty.\n\n"); return; } printf("There are %d elements in stack.\n", top+1); for ( d = top ; d >= 0 ; d-- ) printf("%d\n", stack[d]); printf("\n"); } int is_empty() { if ( top == - 1 ) return 1; else return 0; } int top_element() { return stack[top]; }
2. Queue Implementation (All Operation)
#include<conio.h> #include<stdio.h> #define N 5 int queue[N]={0}; int rear=0,front=0; void insert(void); void del(void); void disp(void); void cre(void); void main() { int user=0; clrscr(); do { clrscr(); printf("\nTHE SIZE OF QUEUE IS = %d",N); printf("\n\n 1. INSERT A New Element"); printf("\n 2. DELETE A First Element"); printf("\n 3. DISPLAY A Queue List/Element"); printf("\n 4. CREATE A New Queue Struture"); printf("\n 5. EXIT\n\nEnter Your Choice : "); scanf("%d",&user); switch(user) { case 1: clrscr(); insert(); break; case 2: clrscr(); del(); getch(); break; case 3: clrscr(); disp(); getch(); break; case 4: clrscr(); cre(); getch(); break; case 5: clrscr(); printf("\n\t THANK U"); getch(); break; } } while(user!=5); } /*********************Functions********************/ void insert(void) { int t; if(rear<N) { printf("\nENTER A VALUE IN QUEUE : "); scanf("%d",&t); queue[rear]=t; rear++; } else { clrscr(); printf("\nQUEUE OVERFLOW!!!!!!!!!!!!!!!"); getch(); } } void del(void) { int i; printf("\n %d gets deleted.........",queue[front]); queue[front]=0; front++;//pk } } void disp(void) { int i; printf("Queue Elements :\n\n"); for(i=front;i<rear;i++) { printf("\n\t %d",queue[i]); } } void cre(void) { int t; printf("\nENTER A VALUE IN QUEUE :"); scanf("%d",&t); front=0; queue[front]=t; rear=front+1; }3. Circlural Queue All Operation)
//... C Language program to implement basic operations on a Circular Queue # include < stdio.h > # include < conio.h > # define max 10 void main() { int cqueue[max], data; int front, rear, reply, option; clrscr(); //... Initialise Circular Queue front = rear = 0; do { clrscr(); printf("\n C Language program to implement basic operations on a Circular Queue \n"); printf("\n 1. Insert number in a Circular Queue"); printf("\n 2 .Delete number from Circular Queue"); printf("\n 3. Exit \n"); printf("\n Select proper option ( 1 / 2 / 3 ) : "); scanf("%d", &option); switch(option) { case 1 : // insert clrscr(); printf("\n Enter number: "); scanf("%d", &data); reply = insq(cqueue, &front, &rear, &data); if(reply == -1) printf("\n Circular Queue is Full \n"); else printf("\n Number %d is inserted in a Circular Queue \n", data); break; case 2 : // delete clrscr(); reply = delq(cqueue, &front, &rear,&data); if(reply == -1) printf("\n Circular Queue is Empty \n"); else printf("\n %d is deleted from Circular Queue \n", data); printf("\n"); getch(); break; case 3 : exit(0); } // switch }while(1); } // main int insq(int cqueue[max], int *front, int *rear, int *data) { if((*rear + 1) % max == *front) return(-1); else { *rear = (*rear + 1) % max; cqueue[*rear] = *data; return(1); } // else } // insq int delq(int cqueue[max], int *front, int *rear, int *data) { if(*front == *rear) return(-1); else { *front = (*front + 1) % max; *data = cqueue[*front]; return(1); } // else } // delq
4. Linear Link List All Operation)
//... C Language program to implement basic operations on a Circular Queue # include < stdio.h > # include < conio.h > # define max 10 void main() { int cqueue[max], data; int front, rear, reply, option; clrscr(); //... Initialise Circular Queue front = rear = 0; do { clrscr(); printf("\n C Language program to implement basic operations on a Circular Queue \n"); printf("\n 1. Insert number in a Circular Queue"); printf("\n 2 .Delete number from Circular Queue"); printf("\n 3. Exit \n"); printf("\n Select proper option ( 1 / 2 / 3 ) : "); scanf("%d", &option); switch(option) { case 1 : // insert clrscr(); printf("\n Enter number: "); scanf("%d", &data); reply = insq(cqueue, &front, &rear, &data); if(reply == -1) printf("\n Circular Queue is Full \n"); else printf("\n Number %d is inserted in a Circular Queue \n", data); break; case 2 : // delete clrscr(); reply = delq(cqueue, &front, &rear,&data); if(reply == -1) printf("\n Circular Queue is Empty \n"); else printf("\n %d is deleted from Circular Queue \n", data); printf("\n"); getch(); break; case 3 : exit(0); } // switch }while(1); } // main int insq(int cqueue[max], int *front, int *rear, int *data) { if((*rear + 1) % max == *front) return(-1); else { *rear = (*rear + 1) % max; cqueue[*rear] = *data; return(1); } // else } // insq int delq(int cqueue[max], int *front, int *rear, int *data) { if(*front == *rear) return(-1); else { *front = (*front + 1) % max; *data = cqueue[*front]; return(1); } // else } // delq5. Binary Search Tree All Operation)
//... C Language program to implement basic operations on a Circular Queue # include < stdio.h > # include < conio.h > # define max 10 void main() { int cqueue[max], data; int front, rear, reply, option; clrscr(); //... Initialise Circular Queue front = rear = 0; do { clrscr(); printf("\n C Language program to implement basic operations on a Circular Queue \n"); printf("\n 1. Insert number in a Circular Queue"); printf("\n 2 .Delete number from Circular Queue"); printf("\n 3. Exit \n"); printf("\n Select proper option ( 1 / 2 / 3 ) : "); scanf("%d", &option); switch(option) { case 1 : // insert clrscr(); printf("\n Enter number: "); scanf("%d", &data); reply = insq(cqueue, &front, &rear, &data); if(reply == -1) printf("\n Circular Queue is Full \n"); else printf("\n Number %d is inserted in a Circular Queue \n", data); break; case 2 : // delete clrscr(); reply = delq(cqueue, &front, &rear,&data); if(reply == -1) printf("\n Circular Queue is Empty \n"); else printf("\n %d is deleted from Circular Queue \n", data); printf("\n"); getch(); break; case 3 : exit(0); } // switch }while(1); } // main int insq(int cqueue[max], int *front, int *rear, int *data) { if((*rear + 1) % max == *front) return(-1); else { *rear = (*rear + 1) % max; cqueue[*rear] = *data; return(1); } // else } // insq int delq(int cqueue[max], int *front, int *rear, int *data) { if(*front == *rear) return(-1); else { *front = (*front + 1) % max; *data = cqueue[*front]; return(1); } // else } // delq6. Add Two Polinormals
#include<stdio.h> #include<malloc.h> #include<conio.h> struct link{ int coeff; int pow; struct link *next; }; struct link *poly1=NULL,*poly2=NULL,*poly=NULL; void create(struct link *node) { char ch; do { // clrscr(); printf("\n Enter coeff : "); scanf("%d",&node->coeff); printf(" Enter power : "); scanf("%d",&node->pow); node->next=(struct link*)malloc(sizeof(struct link)); node=node->next; node->next=NULL; printf("\n Continue(y/n):"); ch=getch(); } while(ch=='y' || ch=='Y'); } void show(struct link *node) { while(node->next!=NULL) { printf("%dx^%d",node->coeff,node->pow); node=node->next; if(node->next!=NULL) printf(" + "); } } void polyadd(struct link *poly1,struct link *poly2,struct link *poly) { while(poly1->next && poly2->next) { if(poly1->pow>poly2->pow) { poly->pow=poly1->pow; poly->coeff=poly1->coeff; poly1=poly1->next; } else if(poly1->pow<poly2->pow) { poly->pow=poly2->pow; poly->coeff=poly2->coeff; poly2=poly2->next; } else { poly->pow=poly1->pow; poly->coeff=poly1->coeff+poly2->coeff; poly1=poly1->next; poly2=poly2->next; } poly->next=(struct link *)malloc(sizeof(struct link)); poly=poly->next; poly->next=NULL; } while(poly1->next || poly2->next) { if(poly1->next) { poly->pow=poly1->pow; poly->coeff=poly1->coeff; poly1=poly1->next; } if(poly2->next) { poly->pow=poly2->pow; poly->coeff=poly2->coeff; poly2=poly2->next; } poly->next=(struct link *)malloc(sizeof(struct link)); poly=poly->next; poly->next=NULL; } } main() { char ch; do{ clrscr(); poly1=(struct link *)malloc(sizeof(struct link)); poly2=(struct link *)malloc(sizeof(struct link)); poly=(struct link *)malloc(sizeof(struct link)); printf("Enter 1st number : "); create(poly1); clrscr(); printf("Enter 2nd number : "); create(poly2); clrscr(); printf("1st Number : "); show(poly1); printf("\n2nd Number : "); show(poly2); polyadd(poly1,poly2,poly); printf("\n\n Add of Two polynomial : "); show(poly); ch=getch(); } while(ch=='y' || ch=='Y'); }7. Reversed of Enter Nodes
#include<stdio.h> #include<conio.h> struct list { int info; struct list *next; }; typedef struct list list; void getnode(int); void traverse(); void remov(); void rev(); list *start=NULL; void main() { int ch,n; char ch1; do { clrscr(); printf("1. Add New Node\n2. Traverse of All Nodes \n3. Delete of Last Nodes\n4. Revser List ELemenet\n5. Exit\nEnter your choice: "); scanf("%d",&ch); switch(ch) { case 1: clrscr(); printf("Enter Value :"); scanf("%d",&n); getnode(n); break; case 2: clrscr(); printf("Show All Element of List\n\n"); traverse(); getch(); break; case 3: clrscr(); remov(); getch(); break; case 4: clrscr(); printf("Your List is Reversed !!!!!!!!!\n\n"); rev(); break; case 5: exit(1); break; } printf("\nDo youy want to continue? press y or n"); ch1=getche(); }while(ch1=='y'|| ch1=='Y'); } void getnode(int n) { list *temp,*ptr; ptr=(list*)malloc(sizeof(list)); if(ptr==NULL) printf("No space available"); else { ptr->info=n; ptr->next=NULL; if(start==NULL) start=ptr; else { temp=start; while(temp->next!=NULL) temp=temp->next; temp->next=ptr; } } } void traverse() { list *ptr; ptr=start; while(ptr!=NULL) { printf("%d ",ptr->info); ptr=ptr->next; } } void remov() { list *cur,*prev,*ptr; if(start==NULL) { printf("List is empty"); return; } else { // ptr = cur; cur = start; while(cur->next!=NULL) { prev = cur; cur = cur->next; } if(prev == NULL) start = NULL; else { prev->next = cur->next; } } printf("Enter element is delete = %d ",cur->info); free(cur); } void rev() { list *pre,*forwd,*cur; pre=NULL; cur=start; forwd=cur->next; start->next=NULL; while(forwd!=NULL) { pre=cur; cur=forwd; forwd=forwd->next; cur->next=pre; } start=cur; }
All Sorting Of DS using
1. Bubble Sorting
#include<stdio.h> #include<conio.h> #include<stdio.h> void bubble_sort(int [],int); void main() { int a[5],n,i,ch; clrscr(); printf("\nHow Many Elements To Be Inserted : "); scanf("%d",&n); printf("\nEnter array elements : \n"); for(i=0;i<n;i++) scanf(" %d",&a[i]); bubble_sort(a,n); getch(); } //--------------------------------- Function void bubble_sort(int a[],int n) { int i,j,k,temp; printf("\nUnsorted Data : "); for(k=0;k<n;k++) printf("%5d",a[k]); printf("\n"); for(i=1;i< n;i++) { for(j=0;j< n-1;j++) if(a[j]>a[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } printf("\nAfter pass %d : ",i); for(k=0;k< n;k++) printf("%5d",a[k]); } }2. Setection Sorting
//selection sorting #include<stdio.h> #include<conio.h> void main() { int array[100], n, c, d, position, swap; clrscr(); printf("\n\nHow MAny Element to You Stored (Array Size) : "); scanf("%d", &n); printf("\nEnter %d integers Element :\n", n); for ( c = 0 ; c < n ; c++ ) scanf("%d", &array[c]); for ( c = 0 ; c < ( n - 1 ) ; c++ ) { position = c; for ( d = c + 1 ; d < n ; d++ ) { if ( array[position] > array[d] ) position = d; } if ( position != c ) { swap = array[c]; array[c] = array[position]; array[position] = swap; } } printf("\nSorted list in ascending order:\n"); for ( c = 0 ; c < n ; c++ ) printf("%d\n", array[c]); getch(); }3. Quick Sorting
// quick sorting #include<stdio.h> #include<conio.h> #define max 10 int a[max], n, i, l, h; void main() { void input(void); input(); getch(); } void input(void) { void quick_sort(int a[], int l , int h); void output(int a[], int n); clrscr(); printf("\n\nHow MAny Element to You Stored (Array Size) : "); scanf("%d",&n); printf("\n"); printf("Enter the element : \n"); for(i=0;i<=n-1;i++) { scanf("%d",&a[i]); } l = 0; h = n - 1; quick_sort(a, l, h); printf("\n\nSorted Array :\n"); output(a, n); } void quick_sort(int a[], int l, int h) { int temp , key, low, high; low = l; high = h; key = a[(low + high)/2]; do { while(key > a[low]) { low++; } while(key < a[high]) { high--; } if(low <= high) { temp = a[low]; a[low++] = a[high]; a[high--] = temp; } } while(low <= high); if(l < high) quick_sort(a, l, high); if(low < h) quick_sort(a, low, h); } void output(int a[],int n) { for(i=0;i<=n-1;i++) { printf("%d\n",a[i]); } }
4. Merge Sortin
// marge sorting #include<stdio.h> #include<conio.h> void merge_split(int a[],int first,int last); void merge(int a[],int f1,int l1,int f2,int l2); int a[25],b[25]; void main() { int i,n; clrscr(); printf("\n\nHow MAny Element to You Stored (Array Size) : "); scanf("%d",&n); printf("\nEnter the elements\n"); for(i=0;i<n;i++) scanf("%d",&a[i]); merge_split(a,0,n-1); printf("\n\nSorted list : "); for(i=0;i<n;i++) printf("\n%d",a[i]); getch(); } void merge_split(int a[],int first,int last) { int mid; if(first<last) { mid=(first+last)/2; merge_split(a,first,mid); merge_split(a,mid+1,last); merge(a,first,mid,mid+1,last); } } void merge(int a[],int f1,int l1,int f2,int l2) { int i,j,k=0; i=f1; j=f2; while(i<=l1 && j<=l2) { if(a[i]<a[j]) b[k]=a[i++]; else b[k]=a[j++]; k++; } while(i<=l1) b[k++]=a[i++]; while(j<=l2) b[k++]=a[j++]; i=f1; j=0; while(i<=l2 && j<k) a[i++]=b[j++]; }
No comments:
Post a Comment