【发布时间】:2018-09-22 02:30:37
【问题描述】:
我正在做一个多项式计算器项目,我正在做第一部分。多项式将以特定格式表示,其中两个多项式是表示系数和指数的整数序列。这是一个例子。
4 3 -2 2 6 1
6 3 5 2 3 1
多项式 1 = 4x^3 - 2x^2 + 6x 和多项式 2 = 6x^3 + 5x^2 + 3x
我应该使用链表来实现这一点。
这是我的class Node 代码:
class Node {
int coef;
int power;
Node next;
public Node(int coef, int power) {
this.coef = coef;
this.power = power;
}
}
如何有效地分离系数和指数并添加到链接列表? 这是我推送新多项式节点的代码:
void addPoly(int coef, int pow) {
Node newNode = new Node(coef, pow);
if (head == null) {
head = newNode;
head.next = null;
} else {
Node curr = head;
while (curr.next != null) {
curr = curr.next;
}
curr.next = newNode;
}
}
谢谢!
【问题讨论】:
-
对我来说看起来不错。有什么问题?
-
你认为我先删除所有空白是个好主意,然后在 for 循环中 addPoly() ,其中第一个系数是 chartAt(0),下一个系数是为 0+2 等等(与指数相同,但 charAt(1))?
-
@C0DeX 你真的得到
ints 和charAt吗?如果你有像你的例子这样的负值,这将不起作用 -
如果您的列表总是有序的,您可以向后循环(从 ^1 开始),这样您就不必总是遍历列表的末尾。
-
如果所有数字都是个位数,那么去除空格就可以了。但如果你有
13 12 11 10之类的东西,它就无法与1 3 1 2 1 1 1 0区分开来
标签: java linked-list