如何在自定义有序链表 class 中允许重复项?
How can I allow duplicates in a custom Ordered Linked List class?
我有一项任务是从头开始创建自定义有序链表。我很高兴在作业中获得近乎完美的分数,但我因不允许重复而被算作。假设我添加 "A",然后再次添加 "A"。它只打印一个 "A"。有人对我如何实施这个有什么建议吗?我将展示我的添加方法。如果有人需要更多代码,请随时询问,我很乐意提供。
注意:作业已经完成,因此已经评分。
public boolean add(Comparable obj) {
// TODO: Implement this method (8 points)
//FOR REFERENCE - public OrderedListNode(Comparable item, OrderedListNode previous, OrderedListNode next) {
try {
OrderedListNode node; //create new OrderedListNode for comparison
for (node = head; node.next != tail; node = node.next) { //loop one node at a time until next node is tail
int compare = obj.compareTo(node.next.dataItem); //compare current object with next node
if (compare == 0) {
return false; // Nope
}
if (compare < 0) { //obj is less than next node, so insert previous next
break;
}
}
OrderedListNode newNode = new OrderedListNode(obj, node, node.next);
newNode.next.previous = newNode; //swapping nodes
node.next = newNode;
System.out.println("Added: " + obj); //display elements added
modCount++; //another modification
theSize++; //increment size by 1
} catch (ClassCastException e) { //give message to user
System.out.println(RED + "Caught Exception" + RESET_COLOR);
System.out.println("'" + obj +"'" + RED + " not added" + RESET_COLOR);
}
return true; //successful add
}
改变
if (compare == 0) {
return false; // Nope
}
if (compare < 0) { //obj is less than next node, so insert previous next
break;
}
到
if (compare <= 0) { //obj is less than or equal next node, so insert previous next
break;
}
在我看来,如果该项目与另一项目相同,您仍然可以插入该项目。
我有一项任务是从头开始创建自定义有序链表。我很高兴在作业中获得近乎完美的分数,但我因不允许重复而被算作。假设我添加 "A",然后再次添加 "A"。它只打印一个 "A"。有人对我如何实施这个有什么建议吗?我将展示我的添加方法。如果有人需要更多代码,请随时询问,我很乐意提供。
注意:作业已经完成,因此已经评分。
public boolean add(Comparable obj) {
// TODO: Implement this method (8 points)
//FOR REFERENCE - public OrderedListNode(Comparable item, OrderedListNode previous, OrderedListNode next) {
try {
OrderedListNode node; //create new OrderedListNode for comparison
for (node = head; node.next != tail; node = node.next) { //loop one node at a time until next node is tail
int compare = obj.compareTo(node.next.dataItem); //compare current object with next node
if (compare == 0) {
return false; // Nope
}
if (compare < 0) { //obj is less than next node, so insert previous next
break;
}
}
OrderedListNode newNode = new OrderedListNode(obj, node, node.next);
newNode.next.previous = newNode; //swapping nodes
node.next = newNode;
System.out.println("Added: " + obj); //display elements added
modCount++; //another modification
theSize++; //increment size by 1
} catch (ClassCastException e) { //give message to user
System.out.println(RED + "Caught Exception" + RESET_COLOR);
System.out.println("'" + obj +"'" + RED + " not added" + RESET_COLOR);
}
return true; //successful add
}
改变
if (compare == 0) {
return false; // Nope
}
if (compare < 0) { //obj is less than next node, so insert previous next
break;
}
到
if (compare <= 0) { //obj is less than or equal next node, so insert previous next
break;
}
在我看来,如果该项目与另一项目相同,您仍然可以插入该项目。