数据结构:第六章学习小结

第六章 图

一、内容小结

p.s.在数据结构之前,在离散数学课上也接触了图,当时接触的不深,但在DS课上加深了对图的应用的了解。

1.图的基本术语

①子图:相当于图是集合的话,子图就相当于是它的子集。其中有向图的也可以是无向图的子图。

②无向完全图:具有n(n-1)/2条边的无向图。有向完全图就是具有n(n-1)条弧的有向图。

③稀疏图和稠密图:少边或少弧则为稀疏图,反之则为稠密图。

④权和网:每条边上的权值为权。带权的图即为网。 ⑤入度和出度:与顶点相关联的边指向该结点则算一条入度,反向则算为一条出度。

⑥路径及路径长度:按着顶点的边顺序往下走为一条路径(可有向可序列),经过的弧或边的长度总和算该条路径长度。

⑦回路:第一个顶点和最后一个顶点重复的路径。 ⑧连通图:图中任意两个顶点均为连通的  ⑨连通分量:无向图中的极大连通子图。

2.查询算法

  p.s.在迷宫案例中对DFS和BFS有了一定了解,而且在之后的区分也比较熟练了。

(1)DFS——深度优先算法:看了视频的案例,更快地理解了这个算法的原理。DFS是将一个一个顶点地进行遍历,若以下无可继续遍历,须原路返回再对顶点进行递归遍历,直至遍历完成。适合找所有路径(远一些)。

(2)BFS——广度优先算法:在每个顶点处往外画弧的形式遍历,效率较高。适合求最短路径。

二、学习心得

    在增加“个人小测”的学习形式后,感觉自己对课堂内容的记忆更深刻了,应用起来也比较有思路,也能及时得到老师的指正,所以对我而言是比较有效的一种习题形式。

    还有最近对于算法又接触了一层——写出流程。刚开始阅读DFS算法代码和数组内容:

 

由于时间比较赶,也就没太看清代码中的“陷阱”,导致自己从左向右的顺序来遍历导致出了错,下次会更细心些。

同时在这次算法练习中,学习到了大概的运行过程就是:在邻接矩阵中,递归调用DFS_AM的同时,使用了辅助数组visited[n]对访问结点不断进行更新赋值记录。就如以下:

①如果w(遍历的结点)未访问,则递归调用DFS_AM ,将visited数组中对应成员下标的visited值更新赋值为1;
②如果w已经访问,则不做变化,继续更新。

三、目标完成情况

上次目标完成情况:上次提到的认真学习课本内容,紧跟老师思路的方面上有在跟进中,虽然不是完全以优异的成绩完成各样测试,但在测试中都有得到不小的收获。虽然本章内容确实也如树一般知识点比较多,但在各种自主练习中逐渐找到了自己适应的学习方向,这一点还是让自己比较开心的。

本次目标:临近考试,各样知识点也需要重新回忆起来,掌握要点。所以希望自己能好好平衡好各科复习时间,将数据结构所学的关键代码题仔仔细细研究好敲一遍,增强自己的代码应用能力!更重要的,还是需要耐心和细心,尽量不要有畏难心理!

 

 

posted @ 2020-06-10 16:24  软件工程1902贺依  阅读(210)  评论(1编辑  收藏  举报