以降序将节点插入链表 C++

问题描述

对于我的面向对象编程课程中的一个课程项目,我们的任务是编写一个创建多项式数据类型的程序。多项式是一个单向链表,其中包含一个项。

一个术语和一个包含该术语的节点如下所示:

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 (将#修改为@)