Java中队列的实现



我只是好奇,我有一个实现队列的类,它目前有一个项目…我很好奇,在哪里将是最有效或最干净的位置来初始化其他项目,我希望添加到队列…这是作业的一部分,所以请提供一个解释,而不仅仅是答案!提前感谢……这是我建立的类…

import java.util.*;
public class Queue<T> extends Node<T> {
    private LinkedList<T> list;
    // Queue constructor
    public Queue()  {
        // Create a new LinkedList.
        list = new LinkedList<T>();
    }
    //check if empty
    public boolean isEmpty() {
        return (list.size() == 0);
    }
    //add items to queue
    public void enqueue(Object item) {
        // Append the item to the end of our linked list.
        list.add((T) item);
    }
    //remove items from queue
    public T dequeue() {
        T item = list.get(1);
        list.remove(1);     
        // Return the item
        return item;
    }
    //check top item
    public T peek() {
        return list.get(1);
    }
    //check size of queue
    public int size() {
        return list.size();
    }
}

如何编写队列:

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Queue;
import java.util.*;
/**
 *
 * @author Madhurlucky
 */
public class arrayQueue {
    public static int[] Queue;
    public static int len, front, rear, size;
    public arrayQueue(int n) {
        len = 0;
        size = n;
        front = -1;
        rear = -1;
        Queue = new int[size];
    }
    public boolean isEmpty() {
        return front == -1;
    }
    public boolean isFull() {
        return (front == 0 && rear == size - 1);
    }
    public int getsize() {
        return len;
    }
    public void insert(int i) {
        if (rear == -1) {
            rear = front = 0;
            Queue[rear] = i;
        } else if (rear + 1 >= size) {
            System.out.println("OverFlow Queue");
        } else if (rear + 1 < size) {
            Queue[++rear] = i;
        }
        len++;
    }
    public int remove() {
        int x = -99;
        if (front != -1) {
            x = Queue[front];
            if (front == rear) {
                front = rear = -1;
            } else if (front < rear) {
                front += 1;
            }
            len--;
        }
        return x;
    }
    /*  Function to check the front element of the queue */
    public int peek() {
        if (isEmpty()) {
            throw new NoSuchElementException("Underflow Exception");
        }
        return Queue[front];
    }
    public void display() {
        System.out.print("nQueue = ");
        if (len == 0) {
            System.out.print("Emptyn");
            return;
        }
        for (int i = front; i <= rear; i++) {
            System.out.print(Queue[i] + " ");
        }
        System.out.println();
    }
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("Array Queue Testn");
        System.out.println("Enter Size of Integer Queue ");
        int n = scan.nextInt();
        /* creating object of class arrayQueue */
        arrayQueue q = new arrayQueue(n);
        /* Perform Queue Operations */
        char ch;
        do {
            System.out.println("nQueue Operations");
            System.out.println("1. insert");
            System.out.println("2. remove");
            System.out.println("3. peek");
            System.out.println("4. check empty");
            System.out.println("5. check full");
            System.out.println("6. size");
            int choice = scan.nextInt();
            switch (choice) {
                case 1:
                    System.out.println("Enter integer element to insert");
                    try {
                        q.insert(scan.nextInt());
                    } catch (Exception e) {
                        System.out.println("Error : " + e.getMessage());
                    }
                    break;
                case 2:
                    try {
                        System.out.println("Removed Element = " + q.remove());
                    } catch (Exception e) {
                        System.out.println("Error : " + e.getMessage());
                    }
                    break;
                case 3:
                    try {
                        System.out.println("Peek Element = " + q.peek());
                    } catch (Exception e) {
                        System.out.println("Error : " + e.getMessage());
                    }
                    break;
                case 4:
                    System.out.println("Empty status = " + q.isEmpty());
                    break;
                case 5:
                    System.out.println("Full status = " + q.isFull());
                    break;
                case 6:
                    System.out.println("Size = " + q.getsize());
                    break;
                default:
                    System.out.println("Wrong Entry n ");
                    break;
            }
            /* display Queue */
            q.display();
            System.out.println("nDo you want to continue (Type y or n) n");
            ch = scan.next().charAt(0);
        } while (ch == 'Y' || ch == 'y');
    }
}

相关内容

  • 没有找到相关文章

最新更新