早教吧 育儿知识 作业答案 考试题库 百科 知识分享

邻接表加边的算法如何写?在一个带权的有向图中,采用邻接表存储结构,采用出边表,即某个顶点的邻接边表是指以该结点为起点的边,存储结构定义如下。typedefstructnode{//边表结点

题目详情
邻接表加边的算法如何写?
在一个带权的有向图中,采用邻接表存储结构,采用出边表,即某个顶点的邻接边表是指以该结点为起点的边,存储结构定义如下。
typedef struct node{//边表结点
  int adjvex; //邻接点域
float weight; //边上的权重
  struct node *next; //链域
     //若要表示边上的权,则应增加一个数据域
}EdgeNode;
typedef struct vnode{ //顶点表结点
     VertexType vertex; //顶点域
     EdgeNode *firstedge;//边表头指针
  }VertexNode;
typedef VertexNode AdjList[MaxVertexNum];//AdjList是邻接
typedef struct{
    AdjList adjlist;//邻接表
    int n,e; 图中当前顶点数和边数
   }ALGraph;
写一个算法在图中插入一条边。加必要的注释。
▼优质解答
答案和解析
不太用到,试着写一下
void InsertEdge(ALGraph *g,int startVex/*新边的出发顶点*/,int targetVex/*新边的目的顶点*/,float weight)
{
if(startVex < 0||startVex >= MaxVertexNum||targetVex < 0||targetVex >= MaxVertexNum)
{
printf("顶点错误");
return;
}
EdgeNode *pEdge = (EdgeNode*)malloc(sizeof(EdgeNode)); //创建新的EdgeNode
pEdge->adjvex = targetVex;//设置新EdgeNode中的目标节点
pEdge->weight = weight;
pEdge->next = g->adjlist[startVex].firstedge;//在VertexNode边链表的头部插入新边
g->adjlist[startVex].firstedge = pEdge;
}
// typedef VertexNode AdjList[MaxVertexNum];对于这一句,用AdjList创建的对象,比如AdjList al,al是一个数组,可以用al[0]访问,这个数组每个元素的类型是VertexNode
看了 邻接表加边的算法如何写?在一...的网友还看了以下:

如图为人体内某结构的血流情况示意图,B代表某结构,A、C代表与其相连的血管,箭头代表血流方向,下列  2020-04-06 …

报表结构复制功能只完成()的复制A.报表数据B、报表结构C、报表数据和结构d、报表名称E报表结构和  2020-04-06 …

下列化学用语的理解正确的是()A.某离子结构示意图为:可以表示35Cl-,也可以表示37Cl-B.  2020-04-11 …

如图为人体内某结构的血流情况模式图,B代表某器官或结构,A、C代表血管,箭头代表血流方向,下列叙述  2020-07-29 …

图为人体内某结构的血流情况模式图,B代表某器官或结构,A、C代表血管,箭头代表血流方向,下列叙述正  2020-07-29 …

下图为人体血液中的某种物质,在流经某些结构的过程中,含量变化情况的示意图。纵坐标代表某种物质含量,  2020-08-01 …

(2013•娄底)如图为人体内某结构(或器官)的血液流动情况示意图,B代表某结构或器官,A、C代表与  2020-10-31 …

某品牌电脑原价X元,第一次降价Y元第二次在第一次降价的基础上在降价20%两次降价后的售价可以表?某品  2020-11-06 …

某品牌电脑原价X元,第一次降价Y元第二次在第一次降价的基础上在降价20%两次降价后的售价可以表?某品  2020-11-06 …

如图为某化合物分子结构式,据图回答:(1)该化合物的名称是,它的基本单位的结构通式是.(2)氨基可以  2020-12-21 …