所以我正在研究二叉搜索树,需要进行级别顺序遍历。我将打印出同一级别的所有键。
我现在遇到的问题是我需要创建一个 FIFO 队列。我创建了队列,但是当我尝试将节点添加到队列时,我不断收到an enclosing instance that contains Queue.Node is required
错误消息。有人可以帮我解决我做错了什么。
这是我目前的水平顺序遍历。
public void LevelOrder_Traversal(BST_Node node){
Queue temp=new Queue();
Queue.Node newNode=new Queue.Node();
temp.enqueue(node);
这是我的队列课
public class Queue{
public class Node{
private Integer key;
private Node next;
public Node(){
this.key=null;
this.next=null;
}
public Node(int key){
this.key=key;
this.next=null;
}
}
int size;
Node head;
public Queue(){
head=new Node();
size=0;
}
public void enqueue(Node node){
if(size==0){
head=node;
}
Node curr=head;
while(curr.next!=null){
curr=curr.next;
}
curr.next=node;
size++;
}
public Node dequeue(){
Node temp=head;
head=head.next;
size--;
return temp;
}
}
我发现了一些与我正在做的类似的其他帖子,但我并没有真正理解它们。如果有人能很好地解释我做错了什么以及为什么错了,那就太好了。我需要扩展 Queue 类或类似的东西吗?