创作人QQ:851301776,邮箱:lfr890207@163.com, 欢迎大家一起技术交流,本博客主要是自己学习的心得体会,只为每天进步一点点!
个人座右铭:
1.没有横空出世,只要厚积一定发。
2.你可以学历不高,你可以不上学,但你不能不学习
备注:此部分还需在研究,目前只是初识阶段,很多地方还在学习,逻辑思维较复杂
一、图的分类
1.有向图
2.无向图
3.权重图
二、图的基本概念
1.顶点集合:如上图S(vex) = {‘A’, ‘B’, ‘C’, ‘D’, ‘E’ , ‘F’};
2.边集合:S(arc) = {<'A', 'B'>, <'A', 'C'>, <'A', 'D'>, <'B', 'F'>, <'B', 'C'>, <'C', 'E'>,
四、图的遍历
1.从图中某一顶点触发,访问图中其余顶点,使得每个顶点被访问一次且只被访问一次
2.可以从图中任意一个顶点出发进行遍历
3.需要解决问题:
(1)确定一条搜索路径
(2)确保每个顶点被访问到
(3)确保每个顶点智能被访问一次
4.设置辅助数组,数组元素的初始值均为false,一旦遍历过就置为true.
五、深度优先搜索
1.应用:检查连同分量的个数
两个点是否在一个连同分量中
检查是否构成环,从一个点出发能否回到出发点
六、广度优先搜索
1.关键数据结构:队列
2.应用:游戏中找寻路径问题
七、迪杰斯特拉算法(dijkstra)
1.该算法主要解决最短路径问题,采用的是贪心思想
2.对象:权重图
3.算法的核心思想:每次从路径最短的点出发遍历相邻边,检测改路径值(确保相邻点也是最短),从未被确认路径最短的顶点集合中选择最短路径的点,将该点加入确认路径最短的顶点集合,并将该点作为下次遍历相邻边的出发点;
4.核心步骤:更新、扫描、修改
5.动态规划
在学习