所以我尝试使用名为
的链接列表编写方法public void insert(Task t)
我不太确定如何编写该方法,但我知道如何编写一个名为
的类似方法public void insert(int index, int value)
看起来像这样:
public void insert(int index, int value) throws ListException {
int i = 0;
if (index > getLength()) {
throw new ListException("Index beyond bounds");
}
IntegerListNode prev = null;
IntegerListNode curr = head;
while (curr != null) {
if (index > i) {
i++;
prev = curr;
curr = curr.next;
} else {
break;
}
}
IntegerListNode newNode = new IntegerListNode(value);
newNode.next = curr;
if (prev == null) {
head = newNode;
} else {
prev.next = newNode;
}
System.out.println(this);
}
此方法的作用是在指定索引的链接列表中插入值。我应该做的是编写一个类似的方法,但不是使用整数对象,我应该使用一个名为task的类。这是班级的样子。
public class Task {
int priority;
int number;
Task(int priority, int number) {
this.priority = priority;
this.number = number;
}
}
那么我应该如何调用该方法以及我将该方法放入该方法中。
编辑:这是我写的tasklistnode:
class TaskListNode {
int priority;
int number;
TaskListNode next;
TaskListNode(int priority, int number) {
this.priority = priority;
this.number = number;
this.next = null;
}
}
答案 0 :(得分:0)
免责声明:虽然有些信息似乎缺失,但有时编写良好的代码(合理命名的变量,方法和类)可以作为良好的文档。我正在基于它得出一些结论。
<强>假设:强>
insert
。Task
且priority
。ListException
时会抛出index
,但在提供Task
时不会抛出。{/ li>
可能的用例:
任务的优先级列表(Task
对象存储在按priority
排序的链接列表中。)
<强>解决方案:强>
TaskListNode
的课程IntegerListNode
它应该在其构造函数中接受Task
。 public void insert(Task t)
方法,就像你写的那样
由于未专门提供索引,因此无法抛出ListException
。 index
=&gt;否ListException
。 index
),使其遍历链表,直到找到比指定Task
更低的优先级Task
。Task
应位于列表中。 希望这有帮助。
祝你好运。