1.学习总结

1.1图的思维导图

 

 

1.2 图结构学习体会

1、深度遍历和广度遍历:两种算法都是以邻接表或邻接矩阵为模板的算法,两种算法能解决不同的问题。

PrimKruscal算法:都是从连通图中找出最小生成树的算法。Prim算法直接查找,多次寻找邻边的权重最小值,而Kruscal算法是不断按照权值从小到大查找,直到把所有边都连起来。

Dijkstra算法:选取一个顶点u,使源点vu最短路径长度最小,然后把顶点u加入S中。

Floyd算法:这个课后运用的比较少,但实际运用起来可能会比D算法好。

拓扑排序:并不是唯一的,一定是没有回路的。

2.PTA实验作业

 

1.1 题目1:7-3 六度空间

1.2 设计思路

 

 

1.3 代码截图

 

 

 

 

1.4 PTA提交列表说明

 

 

一开始计数用的Count没有设为全局变量,在子函数与主函数传值中出现了问题。其次,Count初值应该是0而不是1

2.1 题目2:7-4 公路村村通

2.2 设计思路

 

 

2.3 代码截图

 

 

 

 

 

2.4 PTA提交列表说明

 

 

一开始,if条件里没有写价钱不为0,导致输出的价钱一直为0

3.1 题目37-7 旅游规划

3.2 设计思路

 

 

3.3 代码截图

 

 

3.4 PTA提交列表说明

 

 

 

没有记录起始地址和不断更新新的起点

没有用visited数组过滤走过的路线,会走重复的路线。

 

3. 截图本周题目集的PTA最后排名

 

 

4. 阅读代码

 

用两个Dijkstra + DFS。一个求最快路径(如果相同求路径的那条),一个求最短路径(如果相同求结点数最小的那条)~~~求最快路径可以直接在Dijkstra里面求前驱结点Timepre数组~~~求最短路径因为要求结点数最小的那条,所以要用dispre的二维数组存储所有结点的最短路径,然后用DFS求出满足条件的结点数最小的那条

 

posted on 2018-06-18 12:48  无尽空虚丶  阅读(156)  评论(0编辑  收藏  举报