簡體   English   中英

鏈表多項式為什么我的輸出只打印第一項

[英]Linkedlist polynomial why my output only print first term

我剛剛編寫了一個添加兩個多項式鏈表的程序。 我的輸出只打印多項式的第一項。

我無法弄清楚什么是錯誤。 我想在這里得到一些幫助。 有人可以告訴我的代碼有什么問題。

public void addNode(int cof, int exp) {
    PNode node = new PNode(cof, exp);
    if (first == null) {
        first = last = node;
        return;
    }
    last.next = node;
    last = node;
}
public PolynomialLinkedList add(PolynomialLinkedList s) {
    PolynomialLinkedList sum = new PolynomialLinkedList();

    //implement this method
    PNode list1 = first;
    PNode list2 = s.first;
    while (list1 != null && list2 != null) {
        if (list1.exp == list2.exp) {
            sum.addNode(list1.coe + list2.coe, list1.exp);
            list1 = list1.next;
            list2 = list2.next;
        } else if (list1.exp > list2.exp) {
            sum.addNode(list1.coe, list1.exp);
            list1 = list1.next;
        } else if (list2.exp > list1.exp) {
            sum.addNode(list2.coe, list2.exp);
            list2 = list2.next;
        }
    }
    return sum;
}

如果其中一個列表先完成,則其他列表中的其余項目將被忽略並且不會被添加到總和中。

添加額外的循環

while(list1 != null) {
 sum.addNode(list1.coe,list1.exp);
            list1=list1.next;
}

while(list2 != null) {
 sum.addNode(list2.coe,list2.exp);
            list2=list2.next;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM