Özel Sipariş Edilen Bağlantılı Listeyi sıfırdan oluşturduğum bir ödevim vardı. Ödevin yanında mükemmel bir skor aldığım için mutluydum, ancak kopyalamaya izin vermediğim için sayıldım. Diyelim ki "A" ve tekrar "A" ekliyorum. Sadece bir "A" yazdırır. Bunu nasıl uygulayabileceğime dair herhangi bir önerisi var mı? Ekleme yöntemimi göstereceğim. Daha fazla kod isteyen biri varsa, sormaya çekinmeyin ve memnuniyetle sunarım.Özel Sipariş Edilen Bağlantılı Liste sınıfında yinelemelere nasıl izin verebilirim?
NOT: Ödev zaten tamamlanmış, bu yüzden zaten derecelendirilmiş. Bu başka bir öğeye eşitse yine öğeyi eklemek sağlayacak gibi
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
}
Bir dakika. Bu mantıklı. Denemelisin. – IRGeekSauce
Hayır. Henüz çalışmıyor. Not: İlkini dahil ettim (karşılaştırın == 0). – IRGeekSauce
@IRGeekSauce içermez - ilk karşılaştırma, eğer eşitse, yöntemden çıkar. Sorununuzu çözmek için durmamız gereken şeylerden biri budur. Eğer hala işe yaramazsa haberim olsun ve daha fazla bakacağım. – nhouser9