- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我用Java实现了一个LinkedQueue。这是我自己的实现,它不扩展任何类或实现任何接口(interface)(项目的要求)但是,我的打印方法没有返回队列中的第一项。有什么想法吗?
ListNode 类
public class ListNode<AnyType> {
public ListNode( AnyType theElement ) {
this( theElement, null );
}
public ListNode( AnyType theElement, ListNode<AnyType> n) {
element = theElement; next = n;
}
public AnyType element;
public ListNode next;
}
LinkedQueue 类
public class LinkedQueue <AnyType> {
private ListNode<AnyType> front;
private ListNode<AnyType> back;
LinkedQueue() {
front = back = null;
}
public void enqueue ( AnyType x ) {
if ( isEmpty())
back = front = new ListNode<AnyType>(x);
else back = back.next = new ListNode<AnyType>(x);
}
public LinkedQueueIterator<AnyType> first() {
return new LinkedQueueIterator<AnyType>(front.next);
}
public static <AnyType> void printList(LinkedQueue theList) {
if (theList.isEmpty()) {
System.out.println("Empty List");
} else {
LinkedQueueIterator<AnyType> itr = theList.first();
for( ; itr.isValid(); itr.advance()) {
System.out.print( itr.retrieve() + " ");
}
}
}
LinkedQueueIterator 类
public class LinkedQueueIterator<AnyType> {
ListNode<AnyType> current;
LinkedQueueIterator(ListNode<AnyType> theNode) {
current = theNode;
}
public boolean isValid(){
return current != null;
}
public AnyType retrieve(){
return isValid() ? current.element : null;
}
public void advance() {
if( isValid())
current = current.next;
}
}
我真的看不出它有什么问题,但如果我执行 LQ.enqueue("A")、LQ.enqueue("B")、LQ.enqueue("C") 并调用 printList,我都会得到的是BC
最佳答案
看了你的代码一段时间后,只是因为你的小错误,你的 first()
方法返回了前面元素之后的元素,在这段代码中:
public LinkedQueueIterator<AnyType> first() {
return new LinkedQueueIterator<AnyType>(front.next);
}
因为要获取队列的第一个元素,那么应该这样修改:
public LinkedQueueIterator<AnyType> first() {
return new LinkedQueueIterator<AnyType>(front);
}
现在你的程序应该可以正常运行了。
关于java - Java LinkedQueue 的打印方法未获取前面的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61152804/
我正在尝试复制原始队列并打印出队列的内容,然后再次运行副本并打印队列中的元素总数。当我在原始队列上运行 CopyQueue 方法并将其用作 ShowQueue 方法的输入时,它会更改原始队列。 pub
我想知道哪个是使用 EDU.oswego.cs.dl.util.concurrent.LinkedQueue 的最佳替代方案。 在以下情况下: public class testQueue exten
首先,我想说这是我在这里发表的第一篇文章,所以如果我做错了什么,请告诉我。 我有一个名为 EmployeeRecord 的类: void setEmployeeRecord(int empNo, St
我用Java实现了一个LinkedQueue。这是我自己的实现,它不扩展任何类或实现任何接口(interface)(项目的要求)但是,我的打印方法没有返回队列中的第一项。有什么想法吗? ListNod
我正在尝试用 C++ 实现一个 LinkedQueue 结构来存储一些航类的数据。 所以,首先我必须读取一个 csv 文件,它提供了要存储的数据。LinkedQueue 必须以这种方式工作:必须使用
我只是在寻找一个技巧来帮助我开始这个程序,这样我就可以有多个“行”。我目前有 1 行,正在尝试添加另外两行(LinkedQueues)。我需要编写一个包含 3 行的程序。而不是只有一行。我只是在寻找一
我是 C++ 的新手。我正在研究 here 中的以下示例.我得到 expected a declaration行错误 friend LinkedQueue; .我的理解是我需要使用类似 friend
通过这个 LinkedQueue 的实现,除了 pop() 方法之外的所有方法都可以正常工作。当使用 pop() 方法时,堆栈中的所有值都会消失,当它应该只删除第一个值时,堆栈会变成空 这是 Link
我是一名优秀的程序员,十分优秀!