数据结构学习笔记2
来源:互联网 发布:软件变成仿手绘 编辑:程序博客网 时间:2024/04/19 08:54
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;
}
- 数据结构2学习笔记
- 数据结构学习笔记2
- 数据结构学习笔记2
- 《大话数据结构》--学习笔记2
- NSGA 2 学习笔记 -- 数据结构
- python学习笔记2:数据结构
- 数据结构学习笔记--(2)数组
- 数据结构学习笔记-排序2
- 数据结构学习笔记2-堆栈
- 大话数据结构学习笔记2
- 《数据结构》学习笔记(2)
- 数据结构学习笔记(2)线性表
- 专题1,2 数据结构(学习笔记)
- 数据结构和算法学习笔记-2
- 数据结构-栈2(学习笔记)
- python数据结构学习笔记-2-算法
- 数据结构概念_学习笔记2
- 学习笔记(2)数据结构+算法
- 位置无关码、位置有关码、链接地址、加载地址
- SSH框架--OA系统的经典配置
- 创业团队为什么要选择Oracle而不是MySQL?
- 2016/11/22
- mac终端命令大全介绍
- 数据结构学习笔记2
- 计算球面上两点间最短距离多语言版本
- select count (*)、count(1)、count(column)的区别
- Android apk动态加载机制的研究
- AlertDialog的使用
- 差网络模拟工具---clumsy
- 安卓文件路径操作方法区别
- 四种背包问题(01和完全)
- html文件格式