0

As i mentioned, I am trying to sort a Circular queue and rearrange another Circularqueue according to the sorted one. I know it is too beginner for stackoverflow but it is my last chance.

The part of the algorithm that sort but not working properly. I created two temp one for name and one for the numbers. Then search the max in the scores but could not

int size = scores.size();
            for(int i = 0; i<size; i++){
                int max = 0;
                for(int j = 0; j< scores.size(); j++){
                    if((int) scores.peek()> max){
                        max = (int) scores.peek();
                        scores.enqueue(scores.dequeue());
                    }
                    else{
                        scores.enqueue(scores.dequeue());
                    }
                }
                int size2 = scores.size();
                for(int j = 0; j<size2; j++){
                    if((Integer.parseInt(String.valueOf(scores.peek())) == max)){
                        temp_scores.enqueue(scores.dequeue());
                        temp_names.enqueue(names.dequeue());
                        break;
                    }
                    else{
                        scores.enqueue(scores.dequeue());
                        names.enqueue(names.dequeue());
                    }
                }
                int size3 = temp_names.size();
                for(int j = 0; j<size3; j++){
                    scores.enqueue(temp_scores.dequeue());
                    names.enqueue(temp_names.dequeue());
                }
            }
            System.out.println();

public class CircularQueue {

private int rear;
private int front;
private Object[] elements;

public CircularQueue(int capacity)
{
    rear=-1;
    front=0;
    elements=new Object[capacity];
}

public void enqueue(Object data)
{
    if (isFull())
    {

    }
    else
    {
        rear=(rear+1)%elements.length;
        elements[rear]=data;
    }
}

public Object dequeue()
{
    if (isEmpty())
    {

        return null;
    }
    else
    {
        Object retdata= elements[front];
        elements[front]=null;
        front=(front+1)%elements.length;
        return retdata;
    }
}

public Object peek()
{
    if (isEmpty())
    {
        System.out.println("Queue is empty");
        return null;
    }
    else
    {
        return elements[front];
    }
}

public boolean isEmpty()
{
    return elements[front]==null;
}

public boolean isFull()
{
    return (front==(rear+1)%elements.length&&elements[front]!=null&&elements[rear]!=null);
}

public int size()
{
    if (elements[front]==null)
    {
        return 0;
    }
    else
    {
        if (rear>=front)
        {
            return rear-front+1;
        }
        else
        {
            return elements.length-(front-rear)+1;
        }
    }
}

}

0 Answers0