- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我无法理解链表队列的入队方法的代码。我理解 dequeue()、isEmpty()、First() 和 size()。首先,这是 LinearNode 类来创建新的节点对象:
public class LinearNode<T> {
private T element;
private LinearNode<T> next;
/**
* Constructor: Creates an empty node.
*/
public LinearNode() {
next = null;
element = null;
}
/**
* Constructor: Creates a node storing the specified element.
* @param elem The specified element that is to be kept by this LinearNode.
*/
public LinearNode(T elem) {
next = null;
element = elem;
}
/**
* Returns the node that follows this one.
* @return The node that follows this one.
*/
public LinearNode<T> getNext() {
return next;
}
/**
* Sets the node that follows this one.
* @param node The node which is to follow this one.
*/
public void setNext(LinearNode<T> node) {
next = node;
}
/**
* Returns the element stored in this node.
* @return The element that is kept within this node.
*/
public T getElement() {
return element;
}
/**
* Sets the element stored in this node.
* @param elem The element that is to be kept within this node.
*/
public void setElement(T elem) {
element = elem;
}
}
这是入队方法
public void enqueue(T element) {
LinearNode<T> tmp = new LinearNode<T>(element);
if (isEmpty()) {
// set-up front to point to the new node
front = tmp;
} else {
// add the node after the old tail node
rear.setNext(tmp);
}
// update rear to point to the new node
rear = tmp;
count++; // increment size
}
我感到困惑的代码部分是 rear.setNext(tmp);
我的意思是不应该是 temp.setNext(rear);
如何使用 .setNext(); 方法关于LinearNode<T> rear;
当你没有创建名为“rear”的新对象时,我能看到的唯一新对象称为“temp
” ??
编辑这里是包含 Enqueue 方法的 LinkQueue 类:
public class LinkedQueue<T> implements QueueADT<T> {
private LinearNode<T> front; // front node of the queue
private LinearNode<T> rear; // rear node of the queue
private int count; // the current size of the queue
/**
* Constructor: Creates an empty Queue.
*/
public LinkedQueue() {
count = 0;
/* the following assignments are not actually necessary as references
* are initialised automatically to null,
* but they are included for clarity.
*/
front = null;
rear = null;
}
最佳答案
从代码中我可以理解,front和rear只是指针。它们用于指向队列的第一个和最后一个节点。所以当你说:
rear.setNext(tmp);
您正在队列的最后一个节点之后标记新节点。
考虑这个队列:1,2,3,4
在此队列中,前面=1后=4
enqueue(5)
这导致 tmp=5
rear.setNext(5)
结果
1,2,3,4,5
rear=tmp
结果after=5 将后指针重置为最后一个节点
关于java - 了解链表队列的入队方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20054783/
这似乎是一个非常基本的问题,但我已经被困了几个小时。 我们什么时候使用 enqueue/dequeue 方法,什么时候使用 offer/poll?! 我想用 void enqueue(int x, i
我正在制作一款格斗游戏,我正在尝试保留玩家输入的 Action 队列。出于某种原因,我无法将我的字符串添加到队列中。 moverecorder.Enqueue(instructions); "inst
我想公开一个公共(public) RESTful API,并配置我们的 ActiveMQ 实例(可能)来监听该 API 并自动将这些 API 调用的 JSON 或 XML 版本排入队列,或者配置/编写
当我调用我的 API 之一时,onRespone 方法返回空 response.body()。我以前多次遵循这种方式并且它有效,但在这种情况下不起作用。此 api 也适用于浏览器。 我检查了所有的东西
我希望实现 Queue类型 Dictionary并能够迭代/入队/出队。 最终需要的是 queue的 int , string ,无论采取何种伪装。 到目前为止,我有类似的东西: private
错误是什么意思? { [Error: Cannot enqueue Query after fatal error.] code: 'PROTOCOL_ENQUEUE_AFTER_FATAL_ERRO
上面发生了什么: 从接收到的用户数据数组初始化 Realm 模型。 在后台线程的 Realm 数据库中一次写入所有模型。 如果 Realm 模型已通过创建副本存在,则会对其进行更新。 任何人都可以在这
我是一名优秀的程序员,十分优秀!