一、学习总结

1.1思维导图

1.2 学习体会

深度遍历算法:首先访问第一个邻接结点,然后再以这个被访问的邻接结点作为初始结点,访问它的第一个邻接结点。
广度遍历算法:从一个顶点V0开始,辐射状地优先遍历其周围较广的区域。可以解决广度优先生成树,最短路径等问题。
Prim和Kruscal算法:Prim适用于邻接矩阵储存和较密的图,Kruscal算法适用于邻接表储存和较稀疏的图
Dijkstra算法:Dijkstra算法用来求最短路径
拓扑排序算法:对于任何连接自顶点u到顶点v的有向边uv,在最后的排序结果中,顶点u总是在顶点v的前面。

二、PTA实验作业

题目一: 图的着色问题

设计思路

while(n--)
{
    for i=1 to  顶点数
       输入颜色方案
    判断颜色数目是否与k相等,若不等flag=0
    将颜色按深度遍历排序储存在数组e中 
   for i=0 to 顶点数
       for j=0 to 顶点数
          如果g->a[d[i]][d[j]]==1
              令flag=0且退出循环
         如果flag=0 
              输出no 否则 输出yes
}

代码截图

PTA提交列表说明。

题目二:排座位

设计思路

建图
对visited[][]进行初始化为0
若friends[a][b]==1
     则为朋友关系,输出“No problem”
对a,b检查是否存在共同的朋友
     若存在,flag=1
     若不存在,则flag=0;
if(是敌人关系){
     存在共同朋友
           输出"OK but..."
           否则输出“No way”
}
else(不是朋友也不是敌人){
     存在共同朋友,输出"No problem"
     否则输出“OK”
}

代码截图


PTA提交列表说明。

题目三:

设计思路

while(队列不为空){
  将number置为队列头元素,删除队列头元素;
         遍历顶点i=0 to  i<N{
     若visited[i]==0且G[number][i]==1;
              将i进队,visited[i]置为1,记录节点数
                        }
}
       若访问到该层的最后一个节点
          层数加一,改变访问的最后一个节点 
      层数达到6结束,返回记录的节点数

代码截图

PTA提交列表说明。

三、截图本周题目集的PTA最后排名

总分:2

四、阅读代码

posted @ 2018-06-17 20:51  故三  阅读(226)  评论(0编辑  收藏  举报