图的存储及基本操作

2022.12.12

image-20220914224843242

邻接矩阵

输出测试

邻接表

测试结果

十字链表(有向图)

速抠图 (2)

我的理解:

  1. 对于临接表而言,如果是有向图,找入边需要遍历所有内容。我们不如仿照临界表的出边,为入边也弄一串链表。这就是十字链表。
  2. 另外我们可以发现,十字链表的边结点和邻接矩阵位置一致!所以才横着的是出边,竖着的是入边!
  3. 因为是为了优化有向图找入边的问题的方案,所以十字链表当然是为了存储有向图。

邻接多重表(无向图)

速抠图 (9)

我的理解:

  1. 临阶多重表是为无向图的邻接表存储需要多一倍的边提供的解决方案。所以临阶多重表存的是无向图。
  2. 事实上,仍然是利用了临阶矩阵的布局存放边结点。每一个左侧的图的结点引到右边的“矩阵式链表阵”里边去,剩下的关系就在这个“链表阵”里边完成了。

例题

  1. 关于图的存储结构,( )是错误的。 A. 使用邻接矩阵存储一个图时,在不考虑压缩存储的情况下,所占用的存储空间大小只与图中的顶点数有关,与边数无关 B. 邻接表只用于有向图的存储,邻接矩阵适用于有向图和无向图 C. 若一个有向图的邻接矩阵的对角线以下的元素为0,则该图的拓扑序列必定存在 D.存储无向图的邻接矩阵是对称的,故只需存储邻接矩阵的下(或上)三角部分

    【答案】:B

  2. 若图的邻接矩阵中主对角线上的元素皆为0,其余元素全为1,则可以断定该图一定( )。 A.是无向图 B.是有向图 C.是完全图 D.不是带权图

    【答案】:C

  3. 在含有n个顶点和e条边的无向图的邻接矩阵中,零元素的个数为( )。 A. e B. 2e C.n^2 -e D. n^2 -2e

    【答案】:D

  4. 带权有向图G用邻接矩阵存储,则vi的入度等于邻接短阵中()。 A. 第i行非∞的元素个数 B. 第i列非∞的元素个数 C. 第i行非∞且非0的元素个数 D. 第i列非∞且非0的元素个数

    【答案】:D

  5. 一个有n个顶点的图用邻接短阵A表示,若图为有向图,顶点vi的入度是();若图为无向图,顶点vi的度是()。 A. i=1nA[i][j] B. j=1nA[j][i] C. i=1nA[j][i] D. j=1nA[i][j]j=1nA[j][i]

    【答案】:B,D

  6. 下列哪种图的邻接矩阵是对称矩阵?

    A. 有向网 B. 无向网 C. AOV网 D. AOE网

    【答案】:B

  7. 从邻接矩阵

    (1)A=010101010

    可以看出该图具有( )个结点;若是有向图,则该图共有( )条弧;若是无向图,则共有( )条边 ①A. 9 B. 3 C.6 D.1 E. 以上答案均不正确 ②A.5 B.4 C. 3 D.2 E. 以上答案均不正确 ③A.5 B.4 C. 3 D.2 E. 以上答案均不正确

    【答案】:B、B、D

  8. 以下关于图的存储结构的叙述中,正确的是()。 A. 一个图的邻接矩阵表示唯一,邻接表表示唯一 B. 一个图的邻接矩阵表示唯一,邻接表表示不唯一 C.一个图的邻接矩阵表示不唯一,邻接表表示唯一 D. 一个图的邻接矩阵表示不唯一,邻接表表示不唯一

    【答案】:B

  9. 用邻接表法存储图所用的空间大小()。 A与图的顶点数和边数有关 C.只与图的顶点数有关 B.只与图的边数有关 D.与边数的平方有关

    【答案】:A

  10. 若邻接表中有奇数个边表结点,则() A图中有奇数个结点 B. 图中有偶数个结点 C.图为无向图 D.因为有向图

    【答案】:D

  11. 有向图的邻接表存储结构中,顶点v在边表中出现的次数是() A. 项点v的度 B. 顶点v的出度 C. 顶点v的入度 D. 依附于顶点v的边数

    【答案】:D -> C

  12. n个顶点的无向图的邻接表最多有()个边表结点。 A. n^2 B. n(n-1) C. n(n+1) D.n(n -1)/2

    【答案】:D

  13. 假设有n个顶点、e条边的有向图用邻接表表示,则删除与某个顶点v相关的所有边的时间复杂度为(). A. O(n) C.O(n+e) B. O(e) D. O(ne)

    【答案】:C

  14. 对邻接表的叙述中,()是正确的。 A. 无向图的邻接表中,第i个项点的度为第i个链表中结点数的两倍 B. 邻接表比邻接矩阵的操作更简便 C. 邻接矩阵比邻接表的操作更简便 D. 求有向图结点的度,必须遍历整个邻接表

    【答案】:C -> D

  15. 邻接多重表是()的存储结构。

    A. 无向图 C无向因和有向图

    B. 有向图 D.都不是

【答案】:A

  1. 十字链表是()的存储结构。

    A. 无向图 C无向因和有向图 B. 有向图 D.都不是

    【答案】:B

  2. 【2015 统考真题】己知含有5个顶点的图G如下图所示。 截屏2022-09-15 上午10.05.53

    请回答下列问题: 1)写出图G的邻接矩阵A(行、列下标从0开始)。 2)求A^2,矩阵A^2中位于0行3列元素值的含义是什么? 3)若已知具有n(n≥2)个项点的图的邻接短阵为B,则Bm(2≤m≤n)中非零元素的的含义是什么?

    1. \01234
      001101
      110011
      210010
      301101
      411010
    2. (2)3103113212022013103312213

      代表从结点0到结点3有三条两条边组成的路径。

    3. aij≠0意味着通过m-1个中间节点可以连接结点i和结点j

  3. 【2021 统考真题】已知无向连通图G由顶点集V和边集E组成,|E|>0,当G中度为奇数的顶点个数为不大于2的偶数时,G存在包含所有边且长度为|E|的路径(称为EL路径)。设图G采用邻接矩阵存储,类型定义如下:

    请设计算法 int IsExistEL (MGraph G),判断G是否存在旺路径,若存在,则返回1,否则返回0。要求:

    1)给出算法的蒸本设计思想。 2,粮据设科思想,来角C或C++实现 3)说明你所设计算法的时间复杂度和空问复杂度

    1. 利用邻接矩阵存储图,从头遍历每一个结点,计算结点的度,如果判断结点的度为奇数,设置的count计数变量加一。如果发现count>2,则返回0.遍历结束如果count为0或2则返回1,否则返回0

    2. 时间复杂度:O(n^2), 空间复杂度O(1)