7-1 一元多项式求导
设计函数求一元多项式的导数。
#include<iostream>
using namespace std;
struct Node
{
int data;
Node* next;
};
Node* lend = NULL;//定义一个指针,一直指向最后一个节点
void Insert(int data)
{
Node* p = new Node;//分配内存,把新节点存入当前链表里
p->data = data;
p->next = NULL;
lend->next = p;
lend = p;//当插入p后,p就是最后一个节点
}
void getout(Node* Head)
{
Node* t1 = Head->next;//头结点不存东西,所以t1从Head->next开始
Node* t2 = t1->next;
int flag = 0;
while(t1 && t2)
{
if(flag)cout<<" ";//控制输出空格
cout<<t1->data*t2->data;//输出系数
cout<<" "<<t2->data - 1;//输出指数
flag = 1; //这个地方两次都忘记了,该打该打
if(t2->next == NULL)break;
t1 = t2->next;
t2 = t1->next;
}
}
int main()
{
Node* Head = new Node;//定义并初始化头结点
Head->next = NULL;
lend = Head;//此时头结点就是最后一个节点
int a,b;
int flag = 1;
while(cin>>a>>b)
{
if(b != 0)
{
flag = 0;
Insert(a);
Insert(b);
}
}
if(flag)
{
cout<<"0 0"<<endl;
return 0;
}
getout(Head);
return 0;
}
输入格式:
以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。
输出格式:
以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。
输入样例:
3 4 -5 2 6 1 -2 0
输出样例:12 3 -10 1 6 0
7-2 两个有序链表序列的交集
已知两个非降序链表序列S1与S2,设计函数构造出S1与S2的交集新链表S3。
输入格式:
输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。
输出格式:
在一行中输出两个输入序列的交集序列,数字间用