You are on page 1of 11

DSA ASSIGNMENT 2

TRISHIT GUPTA
20BIT0374

TASK 4-TOWERS OF HANOI


#include<iostream>

using namespace std;

int ar[] = {4,3,2,1},br[4],cr[4];

int a = 3,b = -1,c=-1;

void push(int *arr,int val,int &t)

if(t>3)

cout << "Stack overflow";

else

t++;

arr[t] = val;

int pop(int *arr,int &t)

if(t<0)

cout << "Stack underflow";

else

t--;

return arr[t+1];

void display()

int i;
cout << "A: ";

for(i=0;i<=a;i++)

cout << ar[i] << " ";

cout << "\nB: ";

for(i=0;i<=b;i++)

cout << br[i] << " ";

cout << "\nC: ";

for(i=0;i<=c;i++)

cout << cr[i] << " ";

cout << "\n";

cout << "\n";

int main()

int i = 0;

display();

push(br,pop(ar,a),b);

display();

push(cr,pop(ar,a),c);

display();

push(cr,pop(br,b),c);

display();

push(br,pop(ar,a),b);

display();

push(ar,pop(cr,c),a);

display();

push(br,pop(cr,c),b);

display();

push(br,pop(ar,a),b);

display();

push(cr,pop(br,b),c);
display();

push(br,pop(cr,c),b);

display();

push(cr,pop(ar,a),c);

display();

push(cr,pop(br,b),c);

display();

push(ar,pop(br,b),a);

display();

push(ar,pop(cr,c),a);

display();

push(cr,pop(br,b),c);

display();

push(br,pop(ar,a),b);

display();

push(cr,pop(ar,a),c);

display();

push(cr,pop(br,b),c);

display();

}
TASK 5- BALANCING SYMBOLS
#include <stdio.h>

#include <stdlib.h>

#include <string.h>

int top = -1;

char stack[100];
void push(char);

void pop();

void find_top();

int main()

int i;

char a[100];

printf("enter expression\n");

scanf("%s", &a);

for (i = 0; a[i] != '\0';i++)

if (a[i] == '(')

push(a[i]);

else if (a[i] == ')')

pop();

find_top();

return 0;

void push(char a)

stack[top] = a;

top++;

}
// to pop

void pop()

if (top == -1)

printf("expression is NOT BALANCED\n");

exit(0);

else

top--;

// to find top

void find_top()

if (top == -1)

printf("\nexpression is BALANCED\n");

else

printf("\nexpression is NOT BALANCED\n");

}
TASK 6-ROLLER COASTER
#include<iostream>

#include<stdlib.h>

#include<conio.h>

using namespace std;

struct queue

int front,rear;

}q;

int sum=0;

void initialize()

q.front=q.rear=-1;

void enqueue()

sum=sum+1;

if(sum==20)

cout<<endl<<"Ride Started";

for(int i=1;i<=20;i++)

void dequeue();

sum=0;

else

int count= 20-sum;

cout<<endl<<"Ride not started,"<<count<<"people still required";

q.rear++;

}
void dequeue()

if(q.front==q.rear)

cout<<endl<<"Queue empty";

else

q.front++;

int main()

int choice;

initialize();

do

cout<<endl<<"1.join the line"<<endl<<"2.get out of line"<<endl<<"3.number of


people in queue"<<endl<<"4.exit";

cout<<endl;

cin>>choice;

switch(choice)

case 1:

enqueue();

break;

case 2:

dequeue();

break;

case 3:

cout<<sum;

break;

case 4:
exit(0);

}while(choice!=4);

getch();

You might also like