问题描述
对于我的面向对象编程课程中的一个课程项目,我们的任务是编写一个创建多项式数据类型的程序。多项式是一个单向链表,其中包含一个项。
cols = ['somecol1','somecol2']
df[cols] = df[cols].fillna(0.0)
我有一个名为 struct Term {
double coefficient;
unsigned int exponent;
};
struct Node {
Term term;
Node* next;
};
的类,它有一些创建和操作多项式的方法:
polynomial
我们要构造多项式,使其初始项的值为 0:
class polynomial {
public:
polynomial();
~polynomial();
void addTerm(Term term);
unsigned int degree();
double coefficientFor(unsigned int exponent);
void clear();
private:
Node* Head;
};
我的问题不是由 polynomial::polynomial()
{
Term term_construct;
term_construct.coefficient = 0;
term_construct.exponent = 0;
Head->term = term_construct;
Head->next = NULL;
}
方法引起的。该方法接受一个术语,然后将具有该术语的节点插入到单向链表中。但是有一个问题!链表必须根据传入方法的项的指数降序排列。
这就是我目前所拥有的:
addTerm
例如,如果输入指数为 6、7、3 和 2 的项,则头节点将包含指数 = 7 的项,下一个节点将包含指数 = 6,以此类推。
此外,如果输入的项的指数等于另一个现有项的指数,则不必将该项添加到列表中,而必须将这两项的系数相加。如果两项相加后系数等于0,则必须将该节点从链表中删除。
我一直在努力理解链表以及如何实现它们。但是随着将节点添加到链表的额外要求,我已经完全迷失在我正在做的事情中。
谁能帮助我走上正确的道路?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)