public class LinkedQueue {
private class Node {
String value;
Node next;
Node(String val,Node n) {
value=val;
next=n;
}
}
private Node front=null;
private Node rear=null;
public void enqueue(String s) {
if(rear!=null) {
rear.next=new Node(s,null);
rear=rear.next;
}else {
rear=new Node(s,null);
front = rear;
}
}
}enqueue中的if和else没看懂。
else里,rear是空的情况,为什么front等于rear?
private class Node {
String value;
Node next;
Node(String val,Node n) {
value=val;
next=n;
}
}
private Node front=null;
private Node rear=null;
public void enqueue(String s) {
if(rear!=null) {
rear.next=new Node(s,null);
rear=rear.next;
}else {
rear=new Node(s,null);
front = rear;
}
}
}enqueue中的if和else没看懂。
else里,rear是空的情况,为什么front等于rear?
不理解
front -> NULL, rear -> NULL
这是开始,加入第一个元素后
+---+
| s | <- rear就成这样了,但是front也要指向这里
+---+
+---+
| ^ | <- rear <- front这是正确的结果
+---+希望我解释清楚了哈
front指向是第一个元素,rear指向最后一个元素
8楼正解!else是创建队列第一个节点,并用front记下来。