技术学习博4

Posted hhw-

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了技术学习博4相关的知识,希望对你有一定的参考价值。

补个档,第十一周学的是图

这个是创建赋权无向图的邻接矩阵

 1 //算法8-1:输入n个顶点和e条边的信息,创建赋权无向图G的邻接矩阵
 2 void CreateUDN(AdjMatrix *G)
 3 {
 4     int i, j, k;
 5     AdjType weight;
 6     VertexData v1, v2;
 7 
 8     printf("请输入图的顶点数目:");
 9     scanf("%d", &G->vexnum );
10 
11     printf("请输入弧的数目:");
12     scanf("%d", &G->arcnum );
13 
14     /*初始化邻接矩阵*/
15     for(i=0; i<G->vexnum; i++)
16         for(j=0; j<G->vexnum; j++)
17             G->arcs[i][j].adj=INFINITY;
18         
19     printf("请输入顶点信息(直接连续输入,不要使用空格或回车间隔,除非空格或回车是顶点存储的元素):");
20     fflush(stdin);    /*消除前面回车的影响*/
21     for(i=0; i<G->vexnum; i++)
22         scanf("%c", &G->vertex[i]);
23 
24     printf("构建邻接矩阵,请输入一条弧的起点、终点与权值,例如"a,b,10"
");
25     for(k=0; k<G->arcnum; k++)
26     {
27         printf("第%d-%d条:", G->arcnum, k+1);
28         fflush(stdin);
29         scanf("%c,%c,%d", &v1, &v2, &weight);
30         i=LocateVex(G, v1);
31         j=LocateVex(G, v2);
32         G->arcs[i][j].adj=weight;
33         G->arcs[j][i].adj=weight;//比有向图只是加了这一句
34     }
35 }

这个是创建赋权有向图的邻接矩阵

 1 //算法8-2:输入n个顶点和e条边的信息,创建赋权有向图G的邻接矩阵
 2 void CreateDN(AdjMatrix *G)
 3 {
 4     int i, j, k;
 5     AdjType weight;
 6     VertexData v1, v2;
 7 
 8     printf("请输入图的顶点数目:");
 9     scanf("%d", &G->vexnum );
10 
11     printf("请输入弧的数目:");
12     scanf("%d", &G->arcnum );
13 
14     /*初始化邻接矩阵*/
15     for(i=0; i<G->vexnum; i++)
16         for(j=0; j<G->vexnum; j++)
17             G->arcs[i][j].adj=INFINITY;
18         
19     printf("请输入顶点信息(直接连续输入,不要使用空格或回车间隔,除非空格或回车是顶点存储的元素):");
20     fflush(stdin);    /*消除前面回车的影响*/
21     for(i=0; i<G->vexnum; i++)
22         scanf("%c", &G->vertex[i]);
23 
24     printf("构建邻接矩阵,请输入一条弧的起点、终点与权值,例如"a,b,10"
");
25     for(k=0; k<G->arcnum; k++)
26     {
27         printf("第%d-%d条:", G->arcnum, k+1);
28         fflush(stdin);
29         scanf("%c,%c,%d", &v1, &v2, &weight);
30         i=LocateVex(G, v1);
31         j=LocateVex(G, v2);
32         G->arcs[i][j].adj=weight;
33     }
34 }

这个是删除赋权有向图的边

 1 //算法8-3:删除赋权有向图G的一条边
 2 void shanchu(AdjMatrix *G)
 3 {
 4     int i,j;
 5     VertexData v1, v2;
 6     printf("请输入要删除的边的起点与终点,例如a,b
");
 7     fflush(stdin);
 8     scanf("%c,%c", &v1, &v2);
 9     i=LocateVex(G, v1);
10     j=LocateVex(G, v2);
11     G->arcs[i][j].adj=INFINITY;//权值改成无限大
12 }

 

以上是关于技术学习博4的主要内容,如果未能解决你的问题,请参考以下文章

回归 | js实用代码片段的封装与总结(持续更新中...)

c#代码片段快速构建代码

为啥此代码片段返回意外结果?

[原创]java WEB学习笔记61:Struts2学习之路--通用标签 property,uri,param,set,push,if-else,itertor,sort,date,a标签等(代码片段

深度学习核心技术精讲100篇(三十三)-微博推荐算法实践与机器学习平台演进

基于深度学习和语言模型的印刷文字OCR系统