#include<iostream>#include<cstdio>
using namespace std;struct node{//我们在结构体中声明系数,幂,以及下一个节点 int p;int n;
node* next;};
class function{//先在功能类中定义头节点和尾节点
node* head;
node* end;
public:function(){//在公有的构造函数中,先将头节点和尾节点的成员可以动态分配内存
head = new node;
end = new node;//初始化让头节点和尾节点相连,可以理解为初始化线性表的长度为零 //并为头节点和尾节点赋值 (注:节点加node*,如果只是表示对应元素值,就不用加node*)
head->n =-1;
head->next =end;
end->n =999;
end->next =NULL;}//增添新的一项 voidinsert(int pi,int ni){//让系数等于头节点,然后申明一个新的节点q,使在未插入某个数字之前//q永远在p的前面,且q,p相接壤
node* p = head;
node* q;while(p->n < ni){//让q,p同时向后移动一个单位
q = p;
p = p->next;}//新建一个节点,用于存放新插入的元素值,同时新的节点也可以动态分布内存
node* s = new node;//让新建立的节点放在q节点的后面,p节点的前面,以q->s->p的顺序相连
q->next = s;
s->next = p;//给新的节点所对应的元素x赋值上它的系数pi和幂ni
s->p = pi;
s->n = ni;}
//计算方程最后的数值 intgetans(int x){//定义一个ans值,就是最后输出的结果 int ans =0;//先让系数在首位置
node* p = head;//然后移动光标p,使其移项
p = p->next;//循环重复上述操作 while(p->next){//定义一个x^n的值temp int temp =1;//循环遍历算出幂 for(int i =1;i < p->n;i++){//确定x自身相乘的次数,就是模拟幂的运算
temp = temp * x;}//temp乘以它自身所对应的系数
ans = ans + temp * p->p;//接着光标调到下一个位置
p = p->next;}//返回ans值 return ans;}