0% found this document useful (0 votes)
28 views10 pages

Labsheet 5

Uploaded by

Goku
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
28 views10 pages

Labsheet 5

Uploaded by

Goku
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 10

LABSHEET 5:

(Q.1)

(i)

class MyQueue{
private static final int size = 5;
private int front = -1;
private int rear = -1;
private int[] items = new int[size];

public boolean isEmpty(){


return front == -1;
}

public boolean isFull(){


return rear == size-1;
}
public void enqueue(int value){
if (isFull()){
System.out.println("Queue is full");
return;
}

if (isEmpty()){
front = 0;
}
rear++;
items[rear] = value;
System.out.println("Enqueued:" + value);
}

public int dequeue(){


if (isEmpty()){
System.out.println("Queue is empty");
return -1;
}
int temp = items[front];
if (front == rear){
front = -1;
rear = -1;
}
else{
front++;
}
System.out.println("Dequeued:" + temp);
return temp;
}
public void display(){
if (isEmpty()){
System.out.println("Queue is empty");
return;
}
System.out.print("Queue: ");
for (int i = front; i <= rear; i++){
System.out.print(items[i] + " ");
}
System.out.println();
}
}

(ii)

class MyQueueDriver{
public static void main(String[] args){
MyQueue queue = new MyQueue();
System.out.println("Enqueue Operations: ");
queue.enqueue(10);
queue.enqueue(20);
System.out.println("\nQueue after enqueuing elements: ");
queue.display();

System.out.println("\nDequeue Operations:");
queue.dequeue();
System.out.println("\nQueue after dequeue:");
queue.display();
}
}

OUTPUT:

(iii)

class MyQueueDriver {
public static void main(String[] args) {
MyQueue queue = new MyQueue();
System.out.println("Enqueue Operations: ");
queue.enqueue(10);
queue.enqueue(20);
queue.enqueue(30);
queue.enqueue(40);
queue.enqueue(50);
System.out.println("\nQueue after enqueuing elements: ");
queue.display();

System.out.println("\nDequeue Operations:");
queue.dequeue();
System.out.println("\nQueue after dequeue:");
queue.display();

System.out.println("\nTrying enqueue again:");


queue.enqueue(60);
}
}

OUTPUT:

(Q2.)

import java.util.Stack;

class Reverse {
public static void ReverseQ(MyQueue queue) {
if (queue.isEmpty()) {
System.out.println("Queue is Empty. Cannot be reversed.");
return;
}
Stack<Integer> stack = new Stack<Integer>();
while (!queue.isEmpty()) {
stack.push(queue.dequeue());
}
while (!stack.isEmpty()) {
queue.enqueue(stack.pop());
}
System.out.println("Queue has been reversed.");
}
}

public class ReverseQueue {


public static void main(String[] args) {
MyQueue queue = new MyQueue();
queue.enqueue(0);
queue.enqueue(12);
queue.enqueue(8);
queue.enqueue(5);

System.out.println("Original Queue:");
queue.display();

Reverse.ReverseQ(queue);
System.out.println("\nReversed Queue:");
queue.display();
}

OUTPUT:
(Q3.)

public class MyNewStack {


private MyQueue queue1;
private MyQueue queue2;

public MyNewStack() {
queue1 = new MyQueue();
queue2 = new MyQueue();
}

public void push(int value) {


queue2.enqueue(value);
while (!queue1.isEmpty()) {
queue2.enqueue(queue1.dequeue());
}
MyQueue temp = queue1;
queue1 = queue2;
queue2 = temp;
}

public int pop() {


if (queue1.isEmpty()) {
System.out.println("Stack is empty, cannot pop! :D");
return -1;
}
return queue1.dequeue();
}

public int peek() {


if (queue1.isEmpty()) {
System.out.println("Stack is empty, cannot peek. •᷄ɞ•");
return -1;
}
return queue1.dequeue();
}

public void display() {


System.out.println("Current Stack:");
queue1.display();
}
}

class MynewStackDriver {
public static void main(String[] args) {
MyNewStack stack = new MyNewStack();

stack.push(10);
stack.push(20);
stack.push(30);
stack.push(40);
stack.push(50);

stack.display();

System.out.println("Top element (peek): " + stack.peek());

System.out.println("Popped: " + stack.pop());


System.out.println("Popped: " + stack.pop());

stack.display();
}
}

(Q4.)

class MyCQueue {
private static final int SIZE = 5;
private int[] items = new int[SIZE];
private int front = -1;
private int rear = -1;

public boolean isEmpty() {


return front == -1;
}

public boolean isFull() {


return (rear + 1) % SIZE == front;
}

public void enqueue(int value) {


if (isFull()) {
System.out.println("Queue is full! Cannot enqueue " + value
+ ".");
return;
}

if (isEmpty()) {
front = 0;
}

rear = (rear + 1) % SIZE;


items[rear] = value;

System.out.println("Enqueued: " + value);


}

public int dequeue() {


if (isEmpty()) {
System.out.println("Queue is empty! Cannot dequeue.");
return -1;
}

int value = items[front];

if (front == rear) {
front = -1;
rear = -1;
} else {

front = (front + 1) % SIZE;


}

System.out.println("Dequeued: " + value);


return value;
}

public void display() {


if (isEmpty()) {
System.out.println("Queue is empty.");
return;
}

System.out.print("Queue elements: ");


int i = front;
while (true) {
System.out.print(items[i] + " ");
if (i == rear)
break;
i = (i + 1) % SIZE;
}
System.out.println();
}
}

class MyCQueueDriver {
public static void main(String[] args) {
MyCQueue cqueue = new MyCQueue();

System.out.println("Enqueue Operations:");
cqueue.enqueue(10);
cqueue.enqueue(20);
cqueue.enqueue(30);
cqueue.enqueue(40);
cqueue.enqueue(50);

System.out.println("\nCircular Queue after enqueuing


elements:");
cqueue.display();

System.out.println("\nAttempting to enqueue into a full


queue:");
cqueue.enqueue(60);

System.out.println("\nDequeue Operations:");
cqueue.dequeue();
cqueue.dequeue();

System.out.println("\nCircular Queue after dequeuing


elements:");
cqueue.display();

System.out.println("\nEnqueueing after dequeuing:");


cqueue.enqueue(60);
cqueue.enqueue(70);

System.out.println("\nFinal state of the Circular Queue:");


cqueue.display();
}
}

OUTPUT:
(Q5.)

import java.util.Scanner;
import java.util.Stack;

public class PalindromeChecker {


public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Enter a string to check if it's a
palindrome:");
String input = scanner.nextLine();

Stack<Character> stack = new Stack<>();


Queue queue = new Queue();

input = input.toUpperCase();

for (int i = 0; i < input.length(); i++) {


char ch = input.charAt(i);
if (Character.isLetterOrDigit(ch)) {
stack.push(ch);
queue.enqueue(ch);
}
}

boolean isPalindrome = true;


while (!queue.isEmpty()) {
char fromQueue = queue.dequeue();
char fromStack = stack.pop();

if (fromQueue != fromStack) {
isPalindrome = false;
break;
}
}

if (isPalindrome) {
System.out.println("The string \"" + input + "\" is a
palindrome.");
} else {
System.out.println("The string \"" + input + "\" is NOT a
palindrome.");
}

scanner.close();
}
}

OUTPUT:

You might also like