zoukankan      html  css  js  c++  java
  • 数据结构:第六章学习小结

    第六章 图

    一、内容小结

    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已经访问,则不做变化,继续更新。

    三、目标完成情况

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

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

     

     

  • 相关阅读:
    修改centos7 DNS
    group by
    Oracle 删除表空间
    Oralce查看sid 、service_name
    Mysql修改lower_case_table_names
    Oralce静默安装
    Linux安装Mysql
    dbvisualier破解及使用
    Oracle扩容表空间
    lvm方式挂载盘及扩容
  • 原文地址:https://www.cnblogs.com/heyi-777/p/13086084.html
Copyright © 2011-2022 走看看