图的邻接矩阵表示

本文介绍了一种使用C语言创建图结构的方法,并演示了如何通过插入边来构建图。首先初始化了一个具有特定数量顶点的空图,然后通过读取输入来添加边,最后为每个顶点分配数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <iostream>
#include <cstdlib>
#include <bits/stdc++.h>
using namespace std;
int vis[105]
//邻接矩阵表示图
struct ENode
{
    int V1,V2;
    int weight;
};
struct GNode
{
    int Nv;//顶点数
    int Ne;//边数
    int G[100][100];//邻接矩阵
    char Data[100];//存定点的数据
};
struct GNode *CreateGraph(int VertexNum)
{
    //初始化一个有VertexNum个顶点但没有边的图
    struct GNode *Graph;
    int v,w;
    Graph=(struct GNode *)malloc(sizeof(struct GNode));
    Graph->Nv=VertexNum;
    Graph->Ne=0;
    for(v=0; v<Graph->Nv; v++)
        for(w=0; w<Graph->Nv; w++)
        {
            Graph->G[v][w]=0;
        }
    return Graph;
}
void InsertEdge(struct GNode *Graph,struct ENode *E)
{
    Graph->G[E->V1][E->V2]=1;
    Graph->G[E->V2][E->V1]=1;
}
struct GNode *BuildGraph(int k,int m)
{
    struct GNode *Graph;
    struct ENode *E;
    int V;
    int Nv,i;
    //cin>>Nv;//读入顶点个数
    Graph=CreateGraph(k);//初始化有Nv个顶点但没有边的图
    Graph->Ne=m;//读入边数
    if(Graph->Ne!=0)
    {
        E=(struct ENode *)malloc(sizeof(struct ENode));
        for(i=0; i<Graph->Ne; i++)
        {
            cin>>E->V1>>E->V2;
            InsertEdge(Graph,E);
        }
    }
    for(V=0; V<Graph->Nv; V++)
        cin>>Graph->Data[V];
    return Graph;
}
1.下列哪一种邻接矩阵是对称矩阵?( ) A.有向 B.无向 C.AOV D.AOE 2.在边表示活动的AOE中,关键活动的最迟开始时间( ) 最早开始时间。 A.> B.= D.= 3.带权有向G用邻接矩阵A存储,则顶点i的入度等于A中( ) 。 A.第i行非∞的元素之和 B.第i列非∞的元素之和 C.第i行非∞且非0的元素个数 D.第i列非∞且非0的元素个数 4.在一个无向中,所有顶点的度数之和等于所有边数的( ) 倍。 A.1/2 B. 1 C. 2 D. 4 5.对于一个具有n个顶点的无向,若采用邻接矩阵存储,则该矩阵的大小是(D) A.n B.(n-1)2 C.n-1 D.n2 6. 如下有关拓扑序列的叙述,( ) 不对。 A. 拓扑序列包含了有向的全部顶点 B. 有向有环一定没有拓扑序列 C. 有向无环不一定有拓扑序列 D. 拓扑序列不一定唯一 7. 对于描述工程的AOE,( ) 说法正确。 A. 中唯一的出度为零的顶点,称为源点 B. 中唯一的入度为零的顶点,称为汇点 C. 关键路径是源点到汇点的最短路径 D. 关键路径可能有多条 8. 最小生成树指的是( ) 。 A. 由连通所得到的边数最少的生成树 B. 由连通所得到的顶点数相对较少的生成树 C. 连通中所有生成树中权值之和为最小的成生树 D. 连通的极小连通子 9.一个有向,共有n条弧,则所有顶点的度的总和为( ) 。 A.2n B.n C.n-1 D.n/2 二、填空题(每空3,共9)。 1.有n个顶点的连通至少有___条边。有n个顶点的无向至多有 条边。 2. 的广度优先遍历算法中用到辅助队列,每个顶点最多进队 次。 3.在一个具有n个顶点的有向完全中包含有 条边。 三、综合题(共23)(答案可以在纸上笔画然后拍照贴到文档的方式)。 1. (共7无向网如下: (1) 给出如图所示邻接矩阵表示(3): (2) 画出最小生成树(4): 2 .(共8)已知一个连通如图所示,试给出邻接矩阵和邻接链表存储示意(1) 邻接矩阵存储示意为(4: (2) 邻接链表存储示意为(4: 3. (共8如图所示的带权无向,请用克鲁斯卡尔算法给出最小生成树的求解过程。 用克鲁斯卡尔算法求最小生成树的过程为:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值