Académique Documents
Professionnel Documents
Culture Documents
# include<stdio.h>
# include<conio.h>
# include<process.h>
# include<malloc.h>
struct node
{
int info;
struct node *lchild;
struct node *rchild;
}*root;
void main()
{
clrscr();
int choice,num;
root=NULL;
while(1)
{
printf("\n");
printf("1.Insert\n");
printf("2.Delete\n");
printf("3.Inorder Traversal\n");
printf("4.Preorder Traversal\n");
printf("5.Postorder Traversal\n");
printf("6.Display\n");
printf("7.Quit\n");
printf("Enter your choice : ");
scanf("%d",&choice);
switch(choice)
{
case 1:
printf("Enter the number to be inserted : ");
scanf("%d",&num);
insert(num);
break;
case 2:
printf("Enter the number to be deleted : ");
scanf("%d",&num);
del(num);
break;
case 3:
inorder(root);
break;
case 4:
preorder(root);
break;
case 5:
postorder(root);
break;
case 6:
display(root,1);
break;
case 7:
exit(1);
default:
printf("Wrong choice\n");
}/*End of switch */
}/*End of while */
}/*End of main()*/
while(ptr!=NULL)
{
if(item==ptr->info)
{ *loc=ptr;
*par=ptrsave;
return;
}
ptrsave=ptr;
if(item)
ptr=ptr->lchild;
else
ptr=ptr->rchild;
}/*End of while */
*loc=NULL; /*item not found*/
*par=ptrsave;
}/*End of find()*/
if(parent==NULL)
root=tmp;
else
if(item)
parent->lchild=tmp;
else
parent->rchild=tmp;
}/*End of insert()*/
find(item,&parent,&location);
if(location==NULL)
{
printf("Item not present in tree");
return;
}
/*Initialize child*/
if(loc->lchild!=NULL) /*item to be deleted has lchild */
child=loc->lchild;
else /*item to be deleted has rchild */
child=loc->rchild;
if(par==NULL ) /*Item to be deleted is root node*/
root=child;
else
if( loc==par->lchild) /*item is lchild of its parent*/
par->lchild=child;
else /*item is rchild of its parent*/
par->rchild=child;
}/*End of case_b()*/
suc->lchild=loc->lchild;
suc->rchild=loc->rchild;
}/*End of case_c()*/
/
************************************OUTPUT****************************
*******
1.Insert
2.Delete
3.Inorder Traversal
4.Preorder Traversal
5.Postorder Traversal
6.Display
7.Quit
Enter your choice : 1
Enter the number to be inserted : 23
1.Insert
2.Delete
3.Inorder Traversal
4.Preorder Traversal
5.Postorder Traversal
6.Display
7.Quit
Enter your choice : 1
Enter the number to be inserted : 234
1.Insert
2.Delete
3.Inorder Traversal
4.Preorder Traversal
5.Postorder Traversal
6.Display
7.Quit
Enter your choice : 1
Enter the number to be inserted : 345
1.Insert
2.Delete
3.Inorder Traversal
4.Preorder Traversal
5.Postorder Traversal
6.Display
7.Quit
Enter your choice : 1
Enter the number to be inserted : 2
1.Insert
2.Delete
3.Inorder Traversal
4.Preorder Traversal
5.Postorder Traversal
6.Display
7.Quit
Enter your choice : 1
Enter the number to be inserted : 43
1.Insert
2.Delete
3.Inorder Traversal
4.Preorder Traversal
5.Postorder Traversal
6.Display
7.Quit
Enter your choice : 1
Enter the number to be inserted : 467
1.Insert
2.Delete
3.Inorder Traversal
4.Preorder Traversal
5.Postorder Traversal
6.Display
7.Quit
Enter your choice : 6
23
234
345
2
43
467
1.Insert
2.Delete
3.Inorder Traversal
4.Preorder Traversal
5.Postorder Traversal
6.Display
7.Quit
Enter your choice : 3
467 43 2 345 234 23
1.Insert
2.Delete
3.Inorder Traversal
4.Preorder Traversal
5.Postorder Traversal
6.Display
7.Quit
Enter your choice : 4
23 234 345 2 43 467
1.Insert
2.Delete
3.Inorder Traversal
4.Preorder Traversal
5.Postorder Traversal
6.Display
7.Quit
Enter your choice : 5
467 43 2 345 234 23
1.Insert
2.Delete
3.Inorder Traversal
4.Preorder Traversal
5.Postorder Traversal
6.Display
7.Quit
Enter your choice : 7
*//* Program of circular queue using array*/
# include<stdio.h>
#include<conio.h>
#include<process.h>
# define MAX 5
int cqueue_arr[MAX];
int front = -1;
int rear = -1;
void insert();
void del();
void display();
main()
{
clrscr();
int choice;
while(1)
{
printf("1.Insert\n");
printf("2.Delete\n");
printf("3.Display\n");
printf("4.Quit\n");
printf("Enter your choice : ");
scanf("%d",&choice);
switch(choice)
{
case 1 :
insert();
break;
case 2 :
del();
break;
case 3:
display();
break;
case 4:
exit(1);
default:
printf("Wrong choice\n");
}/*End of switch*/
}/*End of while */
}/*End of main()*/
void insert()
{
int added_item;
if((front == 0 && rear == MAX-1) || (front == rear+1))
{
printf("Queue Overflow \n");
return;
}
if (front == -1) /*If queue is empty */
{
front = 0;
rear = 0;
}
else
if(rear == MAX-1)/*rear is at last position of queue */
rear = 0;
else
rear = rear+1;
printf("Input the element for insertion in queue : ");
scanf("%d", &added_item);
cqueue_arr[rear] = added_item ;
}/*End of insert()*/
void del()
{
if (front == -1)
{
printf("Queue Underflow\n");
return ;
}
printf("Element deleted from queue is : %d\n",cqueue_arr[front]);
if(front == rear) /* queue has only one element */
{
front = -1;
rear=-1;
}
else
if(front == MAX-1)
front = 0;
else
front = front+1;
}/*End of del() */
void display()
{
int front_pos = front,rear_pos = rear;
if(front == -1)
{
printf("Queue is empty\n");
return;
}
printf("Queue elements :\n");
if( front_pos <= rear_pos )
while(front_pos <= rear_pos)
{
printf("%d ",cqueue_arr[front_pos]);
front_pos++;
}
else
{
while(front_pos <= MAX-1)
{
printf("%d ",cqueue_arr[front_pos]);
front_pos++;
}
front_pos = 0;
while(front_pos <= rear_pos)
{
printf("%d ",cqueue_arr[front_pos]);
front_pos++;
}
}/*End of else */
printf("\n");
}/*End of display() */
/
*********************************OUTPUT*******************************
******
1.Insert
2.Delete
3.Display
4.Quit
Enter your choice : 1
Input the element for insertion in queue : 345
1.Insert
2.Delete
3.Display
4.Quit
Enter your choice : 1
Input the element for insertion in queue : 365
1.Insert
2.Delete
3.Display
4.Quit
Enter your choice : 1
Input the element for insertion in queue : 234
1.Insert
2.Delete
3.Display
4.Quit
Enter your choice : 1
Input the element for insertion in queue : 2
1.Insert
2.Delete
3.Display
4.Quit
Enter your choice : 3
Queue elements :
34 345 365 234 2
1.Insert
2.Delete
3.Display
4.Quit
Enter your choice : 2
Element deleted from queue is : 34
1.Insert
2.Delete
3.Display
4.Quit
Enter your choice : 3
Queue elements :
345 365 234 2
1.Insert
2.Delete
3.Display
4.Quit
Enter your choice : 4
*/program of double linked list/*
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
struct dllist {
int number;
struct dllist *next;
struct dllist *prev;
};
void main(void) {
clrscr();
printf("\n->>");
for(lnode = head; lnode != NULL; lnode = lnode->next) {
printf("%d->", lnode->number);
}
getch();
}
tail = lnode;
lnode->next = NULL;
}
if(after->next != NULL)
after->next->prev = lnode;
else
tail = lnode;
after->next = lnode;
}
if(lnode->next == NULL)
tail = lnode->prev;
else
lnode->next->prev = lnode->prev;
}
/
*********************************OUTPUT*******************************
******
->>0->1->2->3->4->5->
*//*program for heap sort*/
#include<stdio.h>
#include<conio.h>
void restoreHup(int*,int);
void restoreHdown(int*,int,int);
void main()
{
clrscr();
int a[20],n,i,j,k;
printf("Enter the number of elements to sort : ");
scanf("%d",&n);
j=n;
for(i=1;i<=j;i++)
{
int temp;
temp=a[1];
a[1]=a[n];
a[n]=temp;
n--;
restoreHdown(a,1,n);
}
n=j;
printf("\Here is it...");
for(i=1;i<=n;i++)
printf("%4d",a[i]);
getch();
}
void restoreHup(int *a,int i)
{
int v=a[i];
while((i>1)&&(a[i/2]<v))
{
a[i]=a[i/2];
i=i/2;
}
a[i]=v;
}
a[j/2]=a[j];
j=j*2;
}
a[j/2]=v;
}
/
**********************************OUTPUT******************************
******
for(i=0;i<n;i++){
printf("\nEnter a[%d]..:",i);
scanf("%d",&a[i]);
}
insertsort(a,n);
printf("\nThe sorted order is..:");
getch();
}
void insertsort(int *a,int n)
{
int i,temp,j;
for(i=1;i<n;i++) {
temp=a[i];
for(j=i-1;j>=0;j--)
{
if(a[j]>temp)
a[j+1]=a[j];
else break;
}
a[j+1]=temp;
}
}
/
************************************OUTPUT****************************
******
Enter a[0]..:34
Enter a[1]..:234
Enter a[2]..:2
Enter a[3]..:455
Enter a[4]..:4
Enter a[5]..:56
main()
{
int a[10],i,n;
clrscr();
/*************************************
OUTPUT*******************************************
Element 1 : 21
Element 2 : 36
Element 3 : 54
Element 4 : 2
Element 5 : 0
case '3':
printf("\nEnter The Position :");
scanf("%d",&loc);
printf("\nEnter The Data : ");
scanf("%d",&num);
in_middle(&p,loc,num);
break;
case '4':
printf("\nEnter The Data u Want To Delete : ");
scanf("%d",&num);
del(&p,num);
break;
case '5':
printf("\nThe No Of Nodes Are %d",count(p));
getch();
break;
case '6':
display(p);
getch();
break;
case '7':
printf("\n\nQuiting.......");
getch();
exit(0);
break;
default:
gotoxy(1,15);printf("Invalid choice.Please Enter Correct Choice");
getch();
goto oper;
}
}while(choice !=7);
}
free(temp);
flag=1;
}
else
{ old=temp;
temp=temp->link;
}
}
if(flag==0)
printf("\nData Not Found...");
else
printf("\nData Deleted...Tap a key to continue");
getch();
}
last:
getch();
}
/
*********************************OUTPUT*******************************
******
Enter ur Choice : 4
Enter The Data u Want To Delete : 67
Data Deleted...Tap a key to continue
Enter ur Choice : 5
Enter ur Choice : 6
45
70
78
89
90
*/
*/ transpose of sparse matrices/*
#include<stdio.h>
#include<conio.h>
void main()
{
clrscr();
int a[10][10],b[10][10];
int m,n,p,q,t,col;
int i,j;
for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++)
{
printf("a[%d][%d]= ",i,j);
scanf("%d",&a[i][j]);
}
}
printf("\n\n");
for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++)
{
printf("%d",a[i][j]);
}
printf("\n");
}
t=0;
for(i=1;i<=m;i++)
{
for(j=1;j<=n;j++)
{
printf("\n");
printf("a[0 %d %d %d\n",m,n,t);
for(i=1;i<=t;i++)
{
printf("a[%d %d %d %d \n",i,b[i][1],b[i][2],b[i][3]);
}
if(t>0)
{
for(i=1;i<=n;i++)
{
for(j=1;j<=t;j++)
{
if(b[j][2]==i)
{
a[q][1]=b[j][2]; a[q][2]=b[j][1];
a[q][3]=b[j][3]; q=q+1;
} }
} }
printf("\n\n");
printf("a[0 %d %d %d\n",b[0][1],b[0][2],b[0][3]);
for(i=1;i<=t;i++)
{
printf("a[%d %d %d %d\n",i,a[i][1],a[i][2],a[i][3]);
}
getch();
}
/
*********************************OUTPUT*******************************
******
The matrix is :
12231
23422
366715
a[0 3 3 9
a[1 1 1 12
a[2 1 2 23
a[3 1 3 1
a[4 2 1 2
a[5 2 2 34
a[6 2 3 22
a[7 3 1 36
a[8 3 2 67
a[9 3 3 15
a[0 3 3 9
a[1 1 1 12
a[2 1 2 2
a[3 1 3 36
a[4 2 1 23
a[5 2 2 34
a[6 2 3 67
a[7 3 1 1
a[8 3 2 22
a[9 3 3 15
*/
*/ stack using array/*
# include<stdio.h>
# include<conio.h>
# include<process.h>
void display();
struct stacks
{
int a[100],f;
}d;
void display()
{
printf("the stack is\n");
for(int i=d.f-1;i>=0;i--)
printf("%d\n",d.a[i]);
}
void main()
{
clrscr();
int choice,number;
d.f=0;
do
{
printf("1-push\n");
printf("2-pop\n");
printf("3-exit\n");
printf("enter the choice\n");
scanf("%d",&choice);
switch(choice)
{
case 1:printf("enter the number\n");
scanf("%d",&number);
{
if(d.f==100)
printf("overflow\n");
else
d.a[d.f++]=number;
}
display();
break;
case 2:int number=-50;
if(d.f==0)
printf("underflow\n");
else
number=d.a[--d.f];
if(number!=-50)
printf("the number is deleted\n");
display();
break;
case 3:exit(0);
default:printf("wrong choice\n");
}
}while(choice!=3);
getch();
}
/
**********************************OUTPUT******************************
*******
1-push
2-pop
3-exit
enter the choice
1
enter the number
65
the stack is
65
54
23
1-push
2-pop
3-exit
enter the choice
1
enter the number
89
the stack is
89
65
54
23
1-push
2-pop
3-exit
enter the choice
1
enter the number
90
the stack is
90
89
65
54
23
1-push
2-pop
3-exit
enter the choice
2
the number is deleted
the stack is
89
65
54
23
1-push
2-pop
3-exit
enter the choice
3
*/