数据结构 图那一章的Firstadjvex怎么写?就写一下基本的操作就可以,很急,谢谢
展开全部
存储结构是邻接矩阵
//初始条件:图G存在,v是G中某个顶点
//操作结果:返回v的第一个邻接顶点的序号.若顶点在G中没有邻接顶点,则返回-1
int FirstAdjVex(MGraph G,VertexType v)
{
int i,j = 0,k;
k = LocateVex(G,v);//k为顶点v在图G中的序号
if (G.kind % 2)//网
{
j = INFINITY;
}
for (i=0; i<G.vexnum; ++i)
{
if (G.arcs[k][i].adj != j)
{
return i;
}
}
return -1;
}
存储结构是邻接表
//初始条件:图G存在,v是G中某个顶点
//操作结果:返回v的第一个邻接顶点的序号,若顶点在G中没有邻接顶点,则返回-1
int FirstAdjVex(ALGraph G,VertexType v)
{
ArcNode * p;
int v1;
v1 = LocateVex(G,v);//v1为顶点v在图G中的序号
p = G.vertices[v1].firstarc;
if (p)
{
return p->data.adjvex;
}
else
{
return -1;
}
}
//初始条件:图G存在,v是G中某个顶点
//操作结果:返回v的第一个邻接顶点的序号.若顶点在G中没有邻接顶点,则返回-1
int FirstAdjVex(MGraph G,VertexType v)
{
int i,j = 0,k;
k = LocateVex(G,v);//k为顶点v在图G中的序号
if (G.kind % 2)//网
{
j = INFINITY;
}
for (i=0; i<G.vexnum; ++i)
{
if (G.arcs[k][i].adj != j)
{
return i;
}
}
return -1;
}
存储结构是邻接表
//初始条件:图G存在,v是G中某个顶点
//操作结果:返回v的第一个邻接顶点的序号,若顶点在G中没有邻接顶点,则返回-1
int FirstAdjVex(ALGraph G,VertexType v)
{
ArcNode * p;
int v1;
v1 = LocateVex(G,v);//v1为顶点v在图G中的序号
p = G.vertices[v1].firstarc;
if (p)
{
return p->data.adjvex;
}
else
{
return -1;
}
}
追问
那么NextAdjvex呢?
追答
//初始条件:图G存在,v是G中某个顶点,w是v的邻接顶点
//操作结果:返回v的(相对于w的)下一个邻接顶点的序号,若w是v的最后一个邻接顶点,则返回-1
int NextAdjVex(MGraph G,VertexType v,VertexType w)
{
int i,j = 0,k1,k2;
k1 = LocateVex(G,v);//k1为顶点v在图G中的序号
k2 = LocateVex(G,w);//k2为顶点w在图G中的序号
if (G.kind % 2)//网
{
j = INFINITY;
}
for (i=k2+1; i<G.vexnum; ++i)
{
if (G.arcs[k1][i].adj != j)
{
return i;
}
}
return -1;
}
迈杰
2024-11-30 广告
2024-11-30 广告
RNA-seq数据分析是转录组研究的核心,包括数据预处理、序列比对、定量分析、差异表达分析、功能注释和可视化等步骤。数据预处理主要是质量控制和去除低质量序列。序列比对使用HISAT2、STAR等工具将reads比对到参考基因组。定量分析评估...
点击进入详情页
本回答由迈杰提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |