1.线性结构2 一元多项式的乘法与加法运算
要想将第二个多项式的每一个项都乘以第一个多项式的每一项,我们就不能运用多项式相加时候输入一项就计算一项,我们必须先将第一个多项式存储在一个数组中,每输入第二个多项式的一项就乘以第一个多项式数组,乘的方式按照指数相加,系数相乘的方式,这里我们为什么要将第一个多项式用结构体数组而不用普通数组那样下标存指数,数组元素存系数的方式呢?是因为我们在用第二个多项式的每一项乘以第一个多项式时如果不用结构体数组就必须找出普通数组中的非零项再相乘,如果用结构体数组则可以直接访问到第一个多项式的每一项从而与第二个多项式的每一项相乘。
#include <stdio.h>
struct node
{
int c;
int x;
}arr[1001];
int main()
{
int n,m,a[2010]={0},b[1010]={0};
scanf("%d",&n);
int temp1,temp2;
for(int i=0;i<n;i++)
{
scanf("%d%d",&arr[i].c,&arr[i].x);
b[arr[i].x] +=arr[i].c;
}
scanf("%d",&m);
for(int i=0;i<m;i++)
{
scanf("%d%d",&temp1,&temp2);
b[temp2]+=temp1;
for(int j=0;j<n;j++)
a[arr[j].x+temp2]+=arr[j].c*temp1;
}
int isfirst=1,haveoutput=0;
for(int i=2000;i>=0;i--)
{
if(a[i]!=0){
if(isfirst==0)printf(" %d %d",a[i],i);
else{
isfirst = 0;
printf("%d %d",a[i],i);
}
haveoutput = 1;
}
}
if(haveoutput==0)printf("0 0");
printf("\n");
isfirst=1;
haveoutput=0;
for(int i=1000;i>=0;i--)
{
if(b[i]!=0){
if(isfirst==0)printf(" %d %d",b[i],i);
else{
isfirst = 0;
printf("%d %d",b[i],i);
}
haveoutput = 1;
}
}
if(haveoutput==0)printf("0 0\n");
return 0;
}
#include <stdio.h>
#include <stdlib.h>
#define MAXN 15
int G[MAXN][MAXN];
int Nv,Ne;
int visited[MAXN]={0};
void BulidG()
{
scanf("%d %d",&Nv,&Ne);
int i,j,v1,v2;
for(i=0;i<Nv;i++)
for(j=0;j<Nv;j++) //图的邻接矩阵表示法
G[i][j]=0;
for(i=0;i<Ne;i++)
{
scanf("%d %d",&v1,&v2);
G[v1][v2]=1;
G[v2][v1]=1;
}
}
void DFS(int v)//深搜
{
visited[v]=1;
printf("%d ",v);
for(int i=0;i<Nv;i++)
{
if(G[v][i]!=0&&visited[i]==0)
DFS(i);
}
}
void LDFS()
{
int i;
for(i=0;i<Nv;i++)
{
if(visited[i]==0)
{
printf("{ ");
DFS(i);
printf("}\n");
}
}
}
void vi(){
int i;
for(i=0;i<Nv;i++)
visited[i]=0;
}
//宽搜
void BFS(int v){
const int MAXSIZE=100;
int quene[MAXSIZE];
int first=-1,rear=-1;
quene[++rear]=v;
visited[v]=1;
while(first<rear)
{
int de = quene[++first];
printf("%d ",de);
for(int i=0;i<Nv;i++)
{
if(visited[i]==0&&G[de][i]!=0)
{
visited[i]=1;
quene[++rear]=i;
}
}
}
}
void LBFS()
{
int i;
for(i=0;i<Nv;i++)
{
if(visited[i]==0)
{
printf("{ ");
BFS(i);
printf("}\n");
}
}
}
int main()
{
BulidG();
LDFS();
vi();
LBFS();
return 0;
}