Write a Java main program that finds the majority character in the Queue. The majority character in the queue, Q, of size n is a character that appears more than n/2 times. You must use ONLY queue data structure. The queue must remain the same. Example: Queue: ECE E EGEdeeeeeeeeeermlşım Output: e
By using this Queue class:
public class Queue {
private int rear, front;
private Object[] elements;
Queue(int capacity){
elements = new Object[capacity];
rear = -1;
front = 0;
}
void enqueue(Object data){
if(isFull()){
System.out.println("Queue overflow");
}
else {
rear = (rear +1) % elements.length;
elements[rear] = data;
}
}
Object dequeue(){
if(isEmpty()){
System.out.println("Queue empty");
return null;
}
else {
Object retData = elements[front];
elements[front]= null;
front = (front+1) % elements.length;
return retData;
}
}
Object peek(){
if (isEmpty()){
System.out.println("Queue is empty");
return null;
}
else {
return elements[front];
}
}
boolean isEmpty(){
return elements[front] == null;
}
boolean isFull(){
return (front == (rear +1)% elements.length &&
elements[front] != null&& elements[rear] != null);
}
int size(){
if (rear >= front){
return rear - front +1;
}
else if (elements[front] != null) {
return elements.length - (front - rear) + 1;
}
else {
return 0;
}
}
}
Step by step
Solved in 2 steps with 1 images