数据结构 图形化_图形在数据结构中的表示

数据结构 图形化

What you will learn?

您将学到什么?

In this article we are going to study how graph is being represented?

在本文中,我们将研究图形如何表示

Following is an undirected graph,

以下是无向图,

Graph image 3

We can represent the same graph by two different methods:

我们可以通过两种不同的方法表示同一张图

  1. Adjacency Matrix

    邻接矩阵

  2. Adjacency List

    邻接表

1)邻接矩阵 (1) Adjacency Matrix)

A graph can represent matrix elements. Initially, all the elements of a matrix are zero. If there is an edge between two vertices (example vertex A and B) then we mark '1' to the element at the position MAB and MBA for undirected graph and for a directed graph, we mark '1' to the element at the position MAB.

图可以表示矩阵元素 。 最初,矩阵的所有元素均为零。 如果存在两个顶点之间“1”的元素在位置M AB和M BA为无向图和有向图的边缘(例如顶点A和B),那么我们标记,我们标记“1”的元素在位置M AB

Example:

例:

Graph image 4

2)邻接表 (2) Adjacency List)

A graph can also be represented by a list. We need an array of the list and for each time if there is an edge exist between two vertices then we push one vertex to another vertex list and vice versa. For the previous graph, we get an Adjacency List like this:

图也可以由列表表示。 我们需要一个列表数组,并且每次在两个顶点之间存在边时,我们都会将一个顶点推到另一个顶点列表,反之亦然。 对于上一个图,我们得到一个邻接列表,如下所示:

Graph image 5

翻译自: https://www.includehelp.com/data-structure-tutorial/representation-of-a-graph.aspx

数据结构 图形化

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
...... ( B )3. 有8个结点的无向图最多有 条边。 A.14 B. 28 C. 56 D. 112 ( C )4. 有8个结点的无向连通图最少有 条边。 A.5 B. 6 C. 7 D. 8 ( C )5. 有8个结点的有向完全图有 条边。 A.14 B. 28 C. 56 D. 112 ( B )6. 用邻接表表示图进行广度优先遍历时,通常是采用 来实现算法的。 A. B. 队列 C. 树 D. 图 ...... 二、填空题(每空1分,共20分) 1. 图有 邻接矩阵 、 邻接表 等存储结构,遍历图有 深度优先遍历 、 广度优先遍历 等方法。 2. 有向图G用邻接表矩阵存储,其第i行的所有元素之和等于顶点i的 出度 。 3. 如果n个顶点的图是一个环,则它有 n 棵生成树。 4. n个顶点e条边的图,若采用邻接矩阵存储,则空间复杂度为 O(n2) 。 5. n个顶点e条边的图,若采用邻接表存储,则空间复杂度为 O(n+e) 。 ....... 1. 【严题集7.1①】已知如图所示的有向图,请给出该图的: 每个顶点的入/出度; 邻接矩阵; 邻接表; 逆邻接表。 2. 【严题集7.7②】请对下图的无向带权图: 写出它的邻接矩阵,并按普里姆算法求其最小生成树; 写出它的邻接表,并按克鲁斯卡尔算法求其最小生成树。 ........ 五、算法设计题(每题10分,共30分) 1. 【严题集7.14③】编写算法,由依次输入的顶点数目、弧的数目、各顶点的信息和各条弧的信息建立有向图的邻接表。 解:Status Build_AdjList(ALGraph &G) //输入有向图的顶点数,边数,顶点信息和边的信息建立邻接表 { InitALGraph(G); scanf("%d",&v); if(v<0) return ERROR; //顶点数不能为负 G.vexnum=v; scanf("%d",&a); if(a<0) return ERROR; //边数不能为负 G.arcnum=a; for(m=0;m<v;m++) G.vertices[m].data=getchar(); //输入各顶点的符号 for(m=1;m<=a;m++) { t=getchar();h=getchar(); //t为弧尾,h为弧头 if((i=LocateVex(G,t))<0) return ERROR; if((j=LocateVex(G,h))nextarc;q=q->nextarc); q->nextarc=p; } p->adjvex=j;p->nextarc=NULL; }//while return OK; }//Build_AdjList 2. 【严题集7.15③】试在邻接矩阵存储结构上实现图的基本操作:DeleteArc(G,v,w)。 (刘提示:删除所有从第i个顶点出发的边的方法是 将邻接矩阵的第i行全部置0 ) ........

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值