Data Structures Experiments
Data Structures Experiments
CODE:
#include<stdio.h>
void move(int n, char src, char dest, char
spr);
void main()
{
int n;
printf("Enter the no of disks:");
scanf("%d", &n);
move(n, 'A', 'C', 'B'); // Corrected:
Destination and spare pegs swapped
}
OUTPUT
EXPERIMENT NO: 3 }
{ {
if(top>=MAX-1) return 1;
{ }
return; }
}
top++; int evaluate(char* expression)
stack[top]=x; {
} int i=0;
char symbol=expression[i];
{ while(symbol!='\0')
if(top==-1) {
printf("Stack Underflow\n"); {
int main()
EXPERIMENT NO :4 }
else
CODE:
{
//implement a menu driven program for
circular queue data structure that if(isempty())
performs following operations:
{
//1 enqueue
front=0;
//2 dequeue
}
//3 display
rear=(rear+1)%MAX;
items[rear]=x;
#include<stdio.h>
printf("Enqueue:%d\n",x);
# define MAX 100
}
int items[MAX], front=-1, rear=-1;
}
void queue();
void enqueue(int x);
int dequeue()
int dequeue();
{
void display();
int item=0;
int isfull();
if(isempty())
int isempty();
{
printf("queue is empty, cannot
void queue() dequeue.\n");
{ }
front=-1; else
rear=-1; {
} item=items[front];
if(front==rear)
void enqueue(int x) {
{ queue();
if(isfull()) }
{ else
printf("queue is full,cannot enqueue.\n"); {
front=(front+1)%MAX; {
} return(front==(rear+1)%MAX);
} }
return item; int main()
} {
void display() queue();
{ int choice,x;
if(isempty()) do
{ {
printf("queue is empty.\n"); printf("\nEnter your
choice:\n1.Enqueue\n2.Dequeue\n3.Displ
}
ay\n4.Exit\n");
else
scanf("%d",&choice);
{
switch(choice)
printf("Queue elements: ");
{
int i = front;
case 1:
do
printf("Enter value:");
{
scanf("%d",&x);
printf("%d ",items[i]);
enqueue(x);
i=(i+1)%MAX;
break;
}
case 2:
while(i!=(rear+1)%MAX);
if(!isempty())
printf("\n");
{
}
printf("Dequeued
} element:%d\n",dequeue());
int isempty() }
{ else
return front==-1; {
} printf("queue is empty");
int isfull() }
break; OUTPUT
case 3:
display();
break;
case 4:
printf("PROGRAM EXITED.\n");
break;
default: printf("INVALID CHOICE\n");
}
}
while(choice!=4);
return 0;
}