《离散数学实验四邻接矩阵的应用》由会员分享,可在线阅读,更多相关《离散数学实验四邻接矩阵的应用(4页珍藏版)》请在金锄头文库上搜索。
1、实验实验 4 邻接矩阵的应用邻接矩阵的应用一、实验目的一、实验目的熟悉邻接矩阵的定义,理解邻接矩阵的应用,并编程设计。二、实验内容二、实验内容要使计算机能够处理图,图的信息应包括两部分:图中结点的信息和描述结点之间关系的边(弧)的信息。结点的描述是一个简单的表的存储问题,可采用顺序表或链表存储。对于一个有 n 个结点的图,由于每个结点都可能与其它 n-1 个结点成为邻接结点,所以结点之间即边(弧)的描述实际上是一个 nn 矩阵的计算机存储表示问题。图的存储结构主要是图中边(弧)的存储结构。邻接矩阵是图的常用的一种存储结构。根据用户输入的某个图的邻接矩阵(以无向图为例)1. 首先让用户输入邻接矩
2、阵,在用户输入完后,判断用户输入的矩阵是否正确。 (无向图的邻接矩阵是对称的)2. 判断此图是否是完全图。 (无向完全图的结点数为 n,则其边数是n(n-1)/2)3. 求出任意一个结点的度。 (统计第 i 行(或列)所有元素的和可得结点 vi的度)4. 判断此图是否是欧拉图。 (图 G 为欧拉图的充要条件是图 G 中每个结点都是偶度结点)提示:前三个题可以写成函数,第 4 个问题可以用第 3 个题的函数来判断。源代码:#includeint main()int i,j,k,l,n,sum=0,add=0;printf(“请输入该图顶点数:“);scanf(“%d“, int Rnn,a10=
3、0;printf(“请输入邻接矩形:n“);for(i=0;in;i+)for(j=0;jn;j+)scanf(“%d“,printf(“n“);for(i=0;in;i+)for(j=0;jn;j+) if(Rij!=Rji)printf(“输入的矩形不正确!n“);break;elseprintf(“%dt“,Rij);printf(“n“);for(i=0;in;i+)for(j=0;jn;j+)sum=sum+Rij;if(sum/2=(n*(n-1)/2)printf(“此图是完全图!n“);elseprintf(“此图不是完全图!n“);printf(“请输入所求结点 Vl(1=l=n):“);scanf(“%d“,for(i=0;in;i+)for(j=0;jn;j+)if(i=l)add=add+Ril;printf(“所求结点 Vl 的度:“);printf(“%dn“,add);for(i=0;in;i+)for(j=0;jn;j+)ai=ai+Rij;for(i=0;in;i+)if(ai%2!=0)printf(“此图不是欧拉图!n“);break;elseprintf(“此图是欧拉图!n“);return 0; 运算结果截图:3、实验小结(本次实验的心得体会,字数不限)实验小结(本次实验的心得体会,字数不限)