Upload
rsgk
View
260
Download
1
Embed Size (px)
DESCRIPTION
Useful C programs like sorting, linked list etc...
Citation preview
Implementation of Queue using Array
Program:
#include<stdio.h>#include<conio.h>#define null 0void main(){int a;void insert();void deletion();void disp();clrscr();printf("\n\t Implementation of Queue using Array\n");do{printf("\n 1.Insertion");printf("\n 2.Deletion");printf("\n 3.Display");printf("\n 4.Exit");printf("\n Enter your choice: ");scanf("%d",&a);switch(a){case 1:insert();break;
case 2:deletion();break;
case 3:disp();break;
case 4:exit(0);break;
default:printf("\n Invalid choice........Try again");break;}}
while(a<4);getch();}
int q[10],n=5,f=0,r=0;void insert(){int b;if(r>=n){printf("\n Queue Overflow.........");return;}else{printf("\n Enter the element: ");scanf("%d",&b);q[r]=b;r++;printf("\n The inserted element is %d",b);f=1;return;}}
void deletion(){int b;if(f==0){printf("\n Queue Underflow....");return;}else{b=q[f];printf("\n The deleted element is %d",b);f++;r--;return;}
}void disp(){int i;if(r==0)
{printf("\n Queue is empty.....");return;}else{for(i=0;i<r;i++)printf("\n The elements present in the queue are........%d",q[i]);}}Output:
Implementation of Queue using Array
1.Insertion 2.Deletion 3.Display 4.Exit Enter your choice: 1
Enter the element: 55
The inserted element is 55 1.Insertion 2.Deletion 3.Display 4.Exit Enter your choice: 1
Enter the element: 66
The inserted element is 66 1.Insertion 2.Deletion 3.Display 4.Exit Enter your choice: 3
The elements present in the queue are........55 The elements present in the queue are........66 1.Insertion 2.Deletion 3.Display 4.Exit Enter your choice: 2
The deleted element is 66 1.Insertion
2.Deletion 3.Display 4.Exit Enter your choice: 3
The elements present in the queue are........55
1.Insertion 2.Deletion 3.Display 4.Exit Enter your choice: 4
Implementation of Queue using Linkedlist
Program:
#include<stdio.h>#include<conio.h>#include<alloc.h>#define null 0void main(){int ch;void insertion();void deletion();void display();clrscr();printf("\n\t Implementation of Queue using Linkedlist");do{printf("\n1.Insertion\n2.Deletion\n3.Display\n4.Exit");printf("\nEnter your choice: ");scanf("%d",&ch);switch(ch){case 1:insertion();break;
case 2:deletion();break;
case 3:display();break;
case 4:exit(0);break;
default:printf("\n Invalid choice........Try again");break;}}while(ch<4);getch();}struct node{int elt;struct node*next;}*front=null,*rear=null;void insertion(){int x;struct node*newnode;newnode=malloc(sizeof(struct node));printf("\n Enter the element to insert: ");scanf("%d",&x);newnode->elt=x;newnode->next=null;if(rear==null){front=newnode;rear=newnode;}else{rear->next=newnode;rear=newnode;}printf("\n The inserted element is %d",newnode->elt);}void deletion(){struct node*temp;if(front==null){printf("\n Queue is empty");return;
}temp=front;if(front==rear)front=rear=null;elsefront=front->next;printf("\n Deleted element is %d",temp->elt);free(temp);}void display(){struct node*temp;if(front==null){printf("\n Queue is empty");return;}temp=front;printf("\n The elements present in the queue are........");while(temp!=null){printf("%d\t",temp->elt);temp=temp->next;} }
Output :
Implementation of Queue using Linkedlist1.Insertion2.Deletion3.Display4.ExitEnter your choice: 1
Enter the element to insert: 55
The inserted element is 551.Insertion2.Deletion3.Display4.ExitEnter your choice: 1
Enter the element to insert: 66
The inserted element is 66
1.Insertion2.Deletion3.Display4.ExitEnter your choice: 2
Deleted element is 551.Insertion2.Deletion3.Display4.ExitEnter your choice: 3
The elements present in the queue are........661.Insertion2.Deletion3.Display4.ExitEnter your choice: 4
Balancing Paranthesis using Array implementation
Program:
#include<stdio.h>#include<conio.h>#include<string.h>int top=-1;char stack[20];void main(){char expr[20],ch;int len,i;void push(char);void pop();clrscr();printf("\n\t Balancing Paranthesis using Array implementation");printf("\nEnter the Expression: ");scanf("%s",expr);len=strlen(expr);for(i=0;i<len;i++){if(expr[i]=='(')push(expr[i]);if(expr[i]==')')pop();}if(top==-1)printf("\n Balanced Expression");elseprintf("\nImbalanced right paranthesis");getch();}void push(char item){stack[top++]=item;}void pop(){if(top==-1){printf("\nImbalanced left paranthesis");getch();}elsetop--;
}
Output:
Balancing Paranthesis using Array implementation
Enter the Expression: (a+b)
Balanced Expression
Enter the Expression: ((a+b)
Imbalanced left paranthesis
Enter the Expression: (a+b))
Imbalanced right paranthesis
Balancing Paranthesis using Linkedlist implementation
Program:
#include<stdio.h>#include<conio.h>#include<string.h>#include<stdlib.h>#define null 0struct node{int data,top;struct node*next;}*top=null;void main(){char expr[20],ch;int len,i;void push(char);void pop();clrscr();printf("\n\t Balancing Paranthesis using Linkedlist implementation");printf("\nEnter the Expression: ");scanf("%s",expr);len=strlen(expr);for(i=0;i<len;i++){if(expr[i]=='(')push(expr[i]);if(expr[i]==')')pop();}if(top==null)printf("\n Balanced Expression");elseprintf("\nImbalanced right paranthesis");getch();}
void push(char item){struct node*newnode;newnode=malloc(sizeof(struct node));newnode->data=item;if(top==null)
{newnode->next=null;top=newnode;}else{newnode->next=top;top=newnode;}}void pop(){if(top==null){printf("\nImbalanced left paranthesis");getch();}elsetop=top->next;}
Output:
Balancing Paranthesis using Array implementation
Enter the Expression: (a+b)
Balanced Expression
Enter the Expression: ((a+b)
Imbalanced left paranthesis
Enter the Expression: (a+b))
Imbalanced right paranthesis
Postfix Evaluation Using Array Implementation
Program:
#include<stdio.h>#include<conio.h>int top=0,stack[20];void main(){char expr[20];int x,len,a,b,c,i;void push(int);int pop();clrscr();printf(“\n Postfix Evaluation Using Array Implementation”);printf("\n Enter the expression: ");scanf("%s",expr);len=strlen(expr);for(i=0;i<len;i++){if(expr[i]=='+'||expr[i]=='-'||expr[i]=='*'||expr[i]=='/'){b=pop();a=pop();switch(expr[i]){case '+':c=a+b;push(c);break;
case '-':c=a-b;push(c);break;
case '*':c=a*b;push(c);break;
case '/':c=a/b;break;}}
else{printf("\n Enter the value of %c ",expr[i]);scanf("%d",&x);push(x);}}printf("\n The Result is: %d",stack[top]);getch();}
void push(int item){stack[top++]=item;}int pop(){int stackval;top--;stackval=stack[top];return stackval;}
Output:
Postfix Evaluation Using Array Implementation
Enter the expression: a+b*c
Enter the value of a: 1
Enter the value of b: 2
Enter the value of c: 3
The Result is: 7
Postfix Evaluation Using Linkedlist Implementation
Program:
#include<stdio.h>#include<conio.h>#include<alloc.h>#include<stdlib.h>#define null 0void main(){char expr[20];int x,top,len,a,b,c,i;void push(int);int pop();clrscr();printf(“\n Postfix Evaluation Using Linkedlist Implementation”);printf("\n Enter the expression: ");scanf("%s",expr);len=strlen(expr);for(i=0;i<len;i++){if(expr[i]=='+'||expr[i]=='-'||expr[i]=='*'||expr[i]=='/'){b=pop();a=pop();switch(expr[i]){case '+':c=a+b;push(c);break;
case '-':c=a-b;push(c);break;
case '*':c=a*b;push(c);break;
case '/':c=a/b;break;
}}else{printf("\n Enter the value of %c ",expr[i]);scanf("%d",&x);push(x);}}printf("the result is: ");printf("%d",top->data);}struct node{int data;struct node*next;}*top=null;void push(int item){struct node*newnode;newnode=malloc(sizeof(struct node));newnode->data=item;if(top==null){newnode->next=null;top=newnode;}else{newnode->next=top;top=newnode;}}int pop(){int staval;struct node*temp;temp=top;staval=temp->data;top=top->next;free(temp);return staval;}
Output:
Postfix Evaluation Using Linkedlist Implementation
Enter the expression: a*b
Enter the value of a: 10
Enter the value of b: 20
The Result is: 200
QUICK SORT
Program:
#include<stdio.h>#include<conio.h>int a[20],n;void main(){int i;void qsort(int,int);clrscr();printf("\n QUICK SORT");printf("\n Enter the array size: ");scanf("%d",&n);printf("\n Enter the elements to be sorted: ");for(i=0;i<n;i++)scanf("%d",&a[i]);qsort(0,n-1);printf("\n The sorted elements are: ");for(i=0;i<n;i++)printf("%d\t",a[i]);getch();}void qsort(int left,int right){int i,j,pivot,temp,k;if(left<right){i=left+1;j=right;pivot=left;while(i<j){while(a[pivot]>=a[i])i=i+1;while(a[pivot]<a[j])j=j-1;if(i<j){temp=a[i];a[i]=a[j];a[j]=temp;}}temp=a[pivot];
a[pivot]=a[j];a[j]=temp;qsort(left,j-1);qsort(j+1,right);}}
Output:
QUICK SORT
Enter the array size: 3
Enter the elements to be sorted: 2 3 1
The sorted elements are……...: 1 2 3
QUICK SORT
Enter the array size: 5
Enter the elements to be sorted: 2 3 1 5 4
The sorted elements are……..: 1 2 3 4 5
HEAP SORT
Program:
#include<stdio.h>#include<conio.h>#include<stdlib.h>void heapsort(int a[],int n);void delmax(int a[],int,int);int a[20];void main(){int n,i;clrscr();printf("\n HEAP SORT\n");printf("\n Enter the array size: ");scanf("%d",&n);printf("\n Enter the elements of array: ");for(i=0;i<n;i++)scanf("%d",&a[i]);heapsort(a,n);printf("\n The sorted elements are.........");for(i=0;i<n;i++)printf("%d",a[i]);getch();}void heapsort(int a[],int n){int i,temp;for(i=(n/2)-1;i>=0;i--)delmax(a,i,n);for(i=n-1;i>=1;i--){temp=a[0];a[0]=a[i];a[i]=temp;delmax(a,0,i-1);}}void delmax(int a[],int root,int bottom){int maxch,temp;
if(root*2<=bottom){if(root*2==bottom)maxch=root*2;else if(a[root*2]>a[root*2+1])maxch=root*2;elsemaxch=(root*2)+1;
if(a[root]<a[maxch]){temp=a[root];a[root]=a[maxch];a[maxch]=temp;root=maxch;}}}
Output:
HEAP SORT
Enter the array size: 5
Enter the elements of array: 6 1 7 2 5
The sorted elements are.........1 2 5 6 7
HEAP SORT
Enter the array size: 3
Enter the elements of array: 3 5 1
The sorted elements are.........1 3 5
Implementation of Stack using Array
Program:
#include<stdio.h>#include<conio.h>#define size 5int stack[size],top=-1;
void main(){int choice;void push():void pop();void disp();int isempty();int length();clrscr();
do{printf(“\n1.Push\n2. Pop\n3. Display\n4. Length\n5. Exit\n”);printf(“\nEnter your choice: “);scanf(“%d”,&choice);
switch(choice){case 1:push();break;case 2:pop();break;case 3:disp();break;case 4:printf(“\n No of elements in stack is %d”,length(1));break;case 5:exit(0);break;default:printf(“\nInvalid choice!!!!!!!!”);}}
while(choice!=5);getch();}
void push(){int no;if(top==size-1){printf(“\nStack if full”);}else{printf(“\n Enter the number: ”);scanf(“%d”,&no);top++;stack[top]=no;}}
void pop(){int no;if(isempty()){printf(“\nStack is empty”);top=-1;}else{no=stack[top];printf(“\n %d is popped from the stack”,no);--top;}}
void disp(){int I,temp=top;if(isempty()){printf(“\nStack is empty”);return;}
printf(“\nElements in the stack…”);for(i=temp;i>=0;i--){printf(“%d”,stack[i]);}}
int isempty(){return(top==-1);}
int length(){return(top+1);}
Output:
1. Push2. Pop3. Display4. Length5. Exit
Enter your choice: 1Enter the number: 10
1. Push2. Pop3. Display4. Length5. Exit
Enter your choice: 1Enter the number: 20
1. Push2. Pop3. Display4. Length5. Exit
Enter your choice: 1Enter the number: 30
1. Push2. Pop3. Display4. Length5. Exit
Enter your choice: 1Enter the number: 40
1. Push2. Pop3. Display4. Length5. Exit
Enter your choice: 1Enter the number: 50
1. Push2. Pop3. Display4. Length5. Exit
Enter your choice: 1Stack is full
1. Push2. Pop3. Display4. Length5. Exit
Enter your choice: 3Elements in the stack 50 40 30 20 10
1. Push2. Pop3. Display4. Length5. Exit
Enter your choice: 4No of elements in the stack 5
1. Push2. Pop3. Display4. Length5. Exit
Enter your choice: 250 is popped from the stack
1. Push2. Pop3. Display4. Length5. Exit
Enter your choice: 240 is popped from the stack
1. Push2. Pop3. Display4. Length5. Exit
Enter your choice: 230 is popped from the stack
1. Push2. Pop3. Display4. Length5. Exit
Enter your choice: 220 is popped from the stack
1. Push2. Pop3. Display4. Length5. Exit
Enter your choice: 210 is popped from the stack
1. Push2. Pop3. Display4. Length5. Exit
Enter your choice: 2Stack is empty
1. Push2. Pop3. Display4. Length5. Exit
Enter your choice: 3Stack is empty
1. Push2. Pop3. Display4. Length5. Exit
Enter your choice: 4No of elements in the stack 0
1. Push2. Pop3. Display4. Length5. Exit
Enter your choice: 5
Implementation of Stack using Linked List
Program:
#include<stdio.h>#include<conio.h>#include<stdlib.h>
struct stack{int no;struct stack *next;};struct stack *p,*q,*temp,*head=NULL;void main(){void push();void pop();void disp();int choice;clrscr();
do{printf(“\n1.Push\n2. Pop\n3. Display\n4. Exit\n”);printf(“\nEnter your choice: “);scanf(“%d”,&choice);
switch(choice){case 1:push();break;case 2:pop();break;case 3:disp();break;case 4:exit(0);break;default:printf(“\nInvalid choice!!!!!!!!”);}}
while(choice!=4);getch();}
void push(){temp=(struct stack*)malloc(sizeof(struct stack));printf(“\nEnter the no:”);scanf(“%d”,&temp->no);
if(head==NULL){head=temp;temp->next=NULL;}else(temp->next=head;head=temp;]printf(“\nElement %d is pushed into the stack”,temp->no);}
void pop(){p=head;if(head==NULL){printf(“Stack is empty”);}else{p=head;head=head->next;printf(“\n Element %d is popped from the stack”,p->no);free(p);}}
void disp(){if(head==NULL)printf(“Stack is empty”);else{p=head;printf(“\nElement is present in the stack”);while(p!=NULL){printf(“%d”,p->no);}}}
Output:
1. Push2. Pop3. Display4. Exit
Enter your choice: 1Enter the number: 10Element 10 is pushed in to stack
1. Push2. Pop3. Display4. Exit
Enter your choice: 1Enter the number: 20Element 20 is pushed in to stack
1. Push2. Pop3. Display4. Exit
Enter your choice: 1Enter the number: 30Element 30 is pushed in to stack
1. Push2. Pop3. Display4. Exit
Enter your choice: 3Element present in the stack 30 20 10
1. Push2. Pop3. Display4. Exit
Enter your choice: 2Element 30 is popped from the stack
1. Push2. Pop3. Display4. Exit
Enter your choice: 2Element 20 is popped from the stack
1. Push2. Pop3. Display4. Exit
Enter your choice: 3Elements present in the stack 10
1. Push2. Pop3. Display4. Exit
Enter your choice: 4
Implementation of List using Array
Program:
#include<stdio.h>#include<conio.h>struct emp{char name[20];int empno;int salary;};struct emp empinfo[10];void main(){int choice;void getdetails();void search();void disp();clrscr();do{printf(“\n1.Getdetails\n2. Search\n3. Display\n4. Exit\n”);printf(“\nEnter your choice: “);scanf(“%d”,&choice);
switch(choice){case 1:getdetails();break;case 2:search();break;case 3:disp();break;case 4:exit(0);break;default:printf(“\nInvalid choice!!!!!!!!”);}}while(choice!=4);getch();}
void getdetails(){int i;printf(“\n Enter the details:”);for(i=0;i<3;i++){printf(“\n Enter the Employee number:”);scanf(“%d”,&empinfo[i].empno);printf(“\n Enter the Employee name:”);scanf(“%d”,&empinfo[i].name);printf(“\n Enter the Employee salary:”);scanf(“%d”,&empinfo[i].salary);}}
void disp(){int i;printf(“\n Employee details……”);for(i=0;i<3;i++){printf(“\nEmployee Name: %s”,empinfo[i].name);printf(“\nEmployee Number:%d”,empinfo[i].empno);printf(“\nEmployee Salary: %d”,empinfo[i].salary);}}
void search(){int i,id,position;printf(“\n Enter the employee no Who’s detail was to be found?....”);scanf(“%d”,&id);for(i=0;i<3;i++){if(id==empinfo[i].empno){printf(“\nEmployee Name: %s”,empinfo[i].name);printf(“\nEmployee Number:%d”,empinfo[i].empno);printf(“\nEmployee Salary: %d”,empinfo[i].salary);}}}
Output:
1. Getdetails2. Search3. Display4. Exit
Enter the choice: 1Enter the details……
Enter the Employee number: 101Enter the Employee name: AAAAEnter the Employee salary: 10000
Enter the Employee number: 102Enter the Employee name: BBBBEnter the Employee salary: 20000
Enter the Employee number: 103Enter the Employee name: CCCCEnter the Employee salary: 30000
1. Getdetails2. Search3. Display4. Exit
Enter the choice: 2Enter the employee no Who’s detail was to be found?....101
Employee name: AAAAEmployee number: 101Employee salary: 10000
1. Getdetails2. Search3. Display4. Exit
Enter the choice: 3
Enter the Employee number: 101Enter the Employee name: AAAAEnter the Employee salary: 10000
Enter the Employee number: 102Enter the Employee name: BBBBEnter the Employee salary: 20000
Enter the Employee number: 103Enter the Employee name: CCCCEnter the Employee salary: 30000
1. Getdetails2. Search3. Display4. Exit
Enter the choice: 4
Implementation of List Using Linked List
Program:
#include<stdio.h>#include<conio.h>#include<alloc.h>#include<stdlib.h>void main(){int data,ch;void insert(int x);void deletion(int x);void disp();clrscr();
do{printf(“\n1.Insertion\n2. Deletion\n3. Display\n4. Exit\n”);printf(“\nEnter your choice: “);scanf(“%d”,&choice);
switch(choice){case 1:printf(“\n Enter the element to insert: ”);scanf(“%d”,&data);insert(data);break;
case 2:printf(“\n Enter the element to delete: ”);scanf(“%d”,&data);deletion(data);break;
case 3:disp();break;
case 4:exit(0);break;
default:printf(“\nInvalid choice!!!!!!!!”);}}while(choice<4);getch();}
struct node *find(int);struct node *findprevious(int);
struct node(){int ele;struct node *next;}*list=NULL,*p;
void insert(int x){struct node *newnode;int pos;newnode=malloc(sizeof(struct node));newnode->ele=x;
if(list->next==NULL){list->next=newnode;newnode->next=NULL;}else{printf(“\n Enter the value after which the element to be inserted:”);scanf(“%d”,&pos);p=find(pos);newnode->next=p->next;p->next-newnode;}}
struct node *find(int s){p=list->next;while(p!=NULL&&p->ele!=s)p=p->next;return p; }
void deletion(int x){struct node *temp;temp=malloc(sizeof(struct node));p=findprevious(x);
if(p->next!=NULL){temp=p->next;p->next=temp->next;printf(“\n The deleted element is %d”,temp->ele);free(temp);}else{pritnf(“\n Element is not found in the list….”);}}
struct node *findprevious(int s){p=list;while(p->next=NULL&&p->next->ele!=s)p=p->next;return p; }
void disp(){if(list->next==NULL)printf(“\n List is empty”);else{p=list->next;printf(“\n The contents of the list are….”);while(p!=NULL){printf(“%d->”,p->ele);p=p->next;}}}
Output:
1. Insertion2. Deletion3. Display4. Exit
Enter the choice: 1Enter the element to insert 10
1. Insertion2. Deletion3. Display4. Exit
Enter the choice: 1Enter the element to insert 20Enter the value after which the element to be inserted:10
1. Insertion2. Deletion3. Display4. Exit
Enter the choice: 3The contents of the list are….10->20->
1. Insertion2. Deletion3. Display4. Exit
Enter the choice: 1Enter the element to insert 30Enter the value after which the element to be inserted:10
1. Insertion2. Deletion3. Display4. Exit
Enter the choice: 3The contents of the list are….10->30->20->
1. Insertion2. Deletion3. Display4. Exit
Enter your choice: 2Enter the element to delete 20
The Deleted element is 20
1. Insertion2. Deletion3. Display4. Exit
Enter the choice: 310->30->
1. Insertion2. Deletion3. Display4. Exit
Enter your choice: 2Enter the element to delete 10The deleted element is 10
1. Insertion2. Deletion3. Display4. Exit
Enter the choice: 330->
1. Insertion2. Deletion3. Display4. Exit
Enter the choice: 4
Binary Search Tree
Program:
#include<stdio.h>#include<conio.h>
void main(){int flag=0,a[20],n,pos,i,item,low,mid,high;void sort(int[],int);clrscr();
printf(“\n Enter the size of tree:”);scanf(“%d”,&n);printf(“\n Enter the elements:”);for(i=0;i<n;i++)scanf(“d},&a[i]);sort(a.n);
printf(“\n Enter the data to be searched:”);scanf(“%d”,&item);low=1;high=n;
while(low<=high){mid=(low+high)/2;if(item==a[mid]){flag=1;break;}elseif(item>a[mid])low=mid+1;elsehigh=mid-1;}if(flag==0)printf(“\n The element %d is not present in the tree:”,item);elseprintf(“\n The element %d is present in the tree”,item);getch();}
void sort(int a[],int n){int i,j,temp;for(i=0;i<n-1;i++)for(j=i+1;j<=n;j++){if(a[i]>a[j]){temp=a[i];a[i]=a[j];a[j]=temp;}}}
Output:
Enter the size of the Tree……..5
Enter the elements: 2 3 5 7 1
Enter the element to be search: 7
The element 7 is present in the tree..
Enter the size of the Tree……..5
Enter the elements: 2 3 5 7 1
Enter the element to be search: 8
The element 8 is present in the tree..