2
내 대기열 클래스를 작성하려고합니다. 내 대기열에 넣는 방법은 하나의 객체를 대기열에 넣은 다음 다른 대기열에 넣으려고하면 그 대기열을 무시하는 것과 같습니다. 여기 내 코드입니다 :대기열 구현, 대기열 넣기 메소드가 작동하지 않습니다.
public class myQueue {
private Node front;
private Node back;
private int s;
public myQueue() {
front = null;
back = null;
s = 0;
}
public void enqueue(Object x) {
if(isEmpty())
back = front = new Node(x);
else
back = back.next = new Node(x);
s++;
}
public Object dequeue() {
Object x;
if(isEmpty()) { System.out.println("nothing to dequeue.\nqueue empty."); }
x = front.data;
s--;
return x;
}
public boolean isEmpty() {
if(s == 0)
return true;
else
return false;
}
public void printQueue() {
if (isEmpty())
System.out.println("empty queue");
else {
Node temp = back;
while(temp != null) {
System.out.println(temp);
temp = temp.next;
}
}
}
}
여기에 내가 일부 개체 대기열하려고 어디에 내 주요 방법 :
public static void main(String[] args) {
int a = 5;
String b = "yo";
Object c = 5.5;
int d = 2;
String e = "Pen";
Object f = 9.2;
myQueue q = new myQueue();
q.enqueue(a);
q.enqueue(b);
q.enqueue(c);
q.enqueue(d);
q.enqueue(e);
q.enqueue(f);
System.out.println("\n");
q.printQueue();
}
하고 난 출력을 얻을 모든은 다음과 같습니다
데이터를 : 9.2
왜 이런 일이 발생했는지에 대한 아이디어가 있습니까? 대기열의 뒤쪽에서 시작하는 경우
Node temp = front; // <<< replacing back by front
while(temp != null) {
System.out.println(temp);
temp = temp.next;
}
, 당신 만의 마지막 요소가됩니다 : 당신이 인쇄 할 때, 당신은 큐의 뒤에 시작
아, 감사합니다. 어떤 이유에서든 필자는 필자의 수첩에 그려진 것을 앞에서 뒤쪽으로 연결시켜 주었기 때문에 뒤에서부터 인쇄해야한다고 생각했다. 고맙습니다! – Ted