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