我不是肯定就如何解釋這一點,但基本上我想指的是列表類前這是元素A的(可從任何列表)。但是會發生的是,當它通過列表的元素時,它將比較兩個不同的列表,並最終不匹配。即將包含前面b的原始列表與包含元素A的列表進行比較。現在我只是想知道如何將元素A的前面設置爲b,以便我可以比較它的位置。Java:如何引用類中的一個類,但引用另一個元素?
/*front is a dummy element used to keep position.
List is a class i have made under requirements of naming for subject.
i don't want a solution. I only want to know about how to do it.
This is what is an example code of whats causing the problem USED IN DRIVER PROGRAM
DLL.concat(DLL2);
it is basically getting DLL's front and going through the loop when it should be using DLL2's.
DLL and DLL2 are both Lists
***/
//will return the index of the Element for comparing
private int checkElement(Element A){
Element b = front;
int i = 0;
while (b != a && i<size)
{
b = b.next;
i++;
}
return i;
}
//edit: add
//size is the size of the list gets increased everytime a variable is added to the list on top of the dummy element.
//Item is a private class inside the List class. it contains the values: element,next, previous in which element contains an object, next and previous contain the next element in the list and the previous one (its a double linked list)
// this is what causes the error to turn up in the above method as im using two different lists and joining them.
public void concat(List L){
if (splice(L.first(),L.last(),last())){
size = size+L.size;
}
}
//this is the splice method for cutting out elements and attaching them after t
//just using the check method to assert that a<b and will later use it to assert t not inbetween a and b
public boolean splice(Element a, Element b, Element t){
if (checkElement(a) < checkElement(b)){
Element A = a.previous;
Element B = b.next;
A.next = B;
B.previous = A;
Element T = t.next;
b.next = T;
a.previous = t;
t.next = a;
T.previous = b;
return true;
}
else {
System.out.println("Splicing did not occur due to b<a");
return false;
}
}
對不起,我認爲語言障礙正在使一個複雜的問題變得更加複雜。你能向我們展示更多的代碼嗎?例如,「尺寸」是什麼,「前」是什麼?該代碼是否是列表結構的內部? – 2011-04-13 01:13:17