博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构第六章学习小结
阅读量:5107 次
发布时间:2019-06-13

本文共 1427 字,大约阅读时间需要 4 分钟。

       第六章学习了图的有关存储结构和遍历,图一个区别于线性表和树结构的又一大数据结构,一个图就是一些顶点的集合,这些顶点通过一系列连接,边可以有权重,图的应用很广泛,我们可以用图表示路线,表示流程等,所以我们在创建图的过程中要考虑清楚图的存储结构。

一.图的存储结构

 

邻接矩阵定义:

typedef struct { VertexType vexs[MAXVEX]; /* 顶点表:用来存放顶点与下标的关系ArcType arc[MAXVEX][MAXVEX]; /* 邻接矩阵:需要初始化 int vexnum,arcnum; /*定点的个数和边的个数*/ }AMGraph;

 

邻接表定义:

与边相关的信息:

typedef struct ArcNode{int adjvex; // 邻接点域,该顶点对应的下标 EdgeType weight;//权重struct ArcNode  next; // 链,指向下一个邻接点}ArcNode;

与顶点相关的信息:

typedef struct VNode{ // 顶点表结点VertexType data; / /节点名字ArceNode firstedge; }VNode;

整张图的信息:

typedef struct{VertexNode adjList[MAXVEX]; // 邻接表是一个结构体数组,数组中的元素是Vertex节点 int vexnum,arcnum; / /图中当前顶点和边数}ALGraph;

二、图的遍历:列出连通集

图的遍历包括深度优先搜索和广度优先搜索。

本题要求用DFS和BFS列出图的连通集,在本题中,因为元素个数较少,我将图用邻接矩阵存储,书写代码较方便。

深搜遍历类似于树的先序遍历,同样也运用了递归:

广搜与图的存储结构无关,类似树的层次遍历,利用栈来进行横向搜索:

void DFS(int i){
//从第0个顶点深搜图 int j; cout<<<" ";//访问第i个顶点 vi1[i]=true; for(int j=0;j

 

void BFS(int i){
//从第i个顶点广搜图 queue
Q; Q.push(i); vi2[i]=true; while(!Q.empty()) { int t=Q.front(); cout<
<<" ";//输出队头元素 Q.pop(); for(int j=0;j

在本题中,用到了两个标记数组vi1和vi2,分别用来判断DFS和BFS中结点是否已被遍历,如果只用一个标记数组会导致深搜完之后,VI数组全部为true,广搜无法进行,这也是做题出错的点之一。

三.最小生成树算法

   最小生成树在我们生活中应用十分广泛,可以解决城市路线规划问题,生产流程问题等等,老师为我们讲解了普里姆算法和克鲁斯卡算法,已经了解了两种算法的思想,并能根据这种思想画出二叉树,但要真正理解其中的一步步流程及判断各种是否生成边的条件还需要深入思考。这一章对于点和边的定义较多,离开书本还是很难写出代码,希望能在不断练习中掌握。

 

转载于:https://www.cnblogs.com/Abigaillll/p/10890670.html

你可能感兴趣的文章
WebAssembly是什么?
查看>>
C# 实现自动化打开和关闭可执行文件(或 关闭停止与系统交互的可执行文件)...
查看>>
20151214--JSTL
查看>>
树状数组_一维
查看>>
【拓扑排序】【最短路】【最小生成树】Day 9.2
查看>>
substring使用
查看>>
如果没有按照正常的先装iis后装.net的顺序,可以使用此命令重新注册一下:
查看>>
java.sql.Timestamp cannot be cast to java.sql.Date
查看>>
JS代码大全-2
查看>>
linux install ftp server
查看>>
C# 使用 Abot 实现 爬虫 抓取网页信息 源码下载
查看>>
嵌入式软件设计第8次实验报告
查看>>
NP难问题求解综述
查看>>
算法和数据结构(三)
查看>>
看一下你在中国属于哪个阶层?
查看>>
在iOS 8中使用UIAlertController
查看>>
js获取ip地址,操作系统,浏览器版本等信息,可兼容
查看>>
Ubuntu下的eclipse安装subclipse遇到没有javahl的问题...(2天解决了)
查看>>
Cadence Allegro 如何关闭铺铜(覆铜)shape的显示和设置shape显示模式–allegro小技巧...
查看>>
Atcoder Grand Contest 004 题解
查看>>