Professional Documents
Culture Documents
#include<stdio.h>
struct node
int data;
}*front,*rear;
main()
front=rear=NULL;
int ch,data;
while(1)
printf("1.Enqueue \n");
printf("2.Dequeue \n");
printf("3.Peek \n");
printf("4.Display \n");
printf("5.Exit \n");
scanf("%d",&ch);
switch(ch)
scanf("%d",&data);
enqueue(data);
break;
case 2: dequeue();
break;
case 3: peek();
break;
case 4: display();
break;
case 5: exit(1);
newnode->data=data;
newnode->next=NULL;
if(rear==NULL)
front=rear=newnode;
rear->next=front;
else
rear->next=newnode;
rear=newnode;
rear->next=front;
void dequeue()
temp=front;
printf("Queue is empty");
else if(front==rear)
front=rear=NULL;
free(temp);
else
front=front->next;
rear->next=front;
free(temp);
void display()
temp=front;
printf("Queue is empty");
else
while(temp->next!=front)
printf("%d \t",temp->data);
temp=temp->next;
printf("%d \n",temp->data);
}
void peek()
printf("Queue is empty");
else
printf("%d",front->data);
Output
1.Enqueue
2.Dequeue
3.Peek
4.Display
5.Exit
Enter your choice:-
//implement circular queue library.
# include <stdio.h>
# include <malloc.h>
struct node
{
int data;
struct node *left;
struct node *right;
};
main()
{
int choice,n,m,pos,i,key,count,leaf;
struct node *root=NULL,*root1,*addr;
while(1)
{
printf("1.Insert Element\n");
printf("2.Preorder\n");
printf("3.Inorder\n");
printf("4.Postorder\n");
printf("Enter your choice : ");
scanf("%d",&choice);
switch(choice)
{
case 1:
printf("How many nodes you want : ");
scanf("%d",&n);
for(i=0; i < n;i++)
{
printf("Enter the element : ");
scanf("%d",&m);
root=insertbst(root,m);
}
break;
case 2: preorder(root);
break;
case 3: inorder(root);
break;
case 4: postorder(root);
break;
case 5: printf("Enter the key to be deleted");
scanf("%d",&key);
root=deletebst(root,key);
break;
case 6: count=countnodes(root);
printf("Number of nodes are %d",count);
break;
case 7: leaf=countleaf(root);
printf("Number of leaf nodes are %d",leaf);
break;
case 8: printf("Enter the key to be searched");
scanf("%d",&key);
addr=search(root,key);
printf("Address=%u",addr);
break;
case 9: root1=treecopy(root);
break;
case 10:mirror(root);
break;
default:
printf("Wrong choice\n");
}/End of switch/
}/End of while/
}/End of main()/
if(root==NULL)
{
root= newnode;
}
else
{
temp=root;
while(temp!=NULL)
{
parent=temp;
if(num<temp->data)
temp=temp->left;
else
temp=temp->right;
}
if(num<parent->data)
parent->left=newnode;
else
parent->right=newnode;
}
return root;
}
void preorder(struct node *root)
{
struct node *temp=root;
if(temp!=NULL)
{
printf("%d",temp->data);
preorder(temp->left);
preorder(temp->right);
}
}
void inorder(struct node *root)
{
struct node *temp=root;
if(temp!=NULL)
{
inorder(temp->left);
printf("%d",temp->data);
inorder(temp->right);
}
}
void postorder(struct node *root)
{
struct node *temp=root;
if(temp!=NULL)
{
postorder(temp->left);
postorder(temp->right);
printf("%d",temp->data);
}
}