博客作业06--图

1.学习总结(2分)

1.1图的思维导图

1.2 图结构学习体会

深度遍历算法:图的深度优先遍历类似于树的前序遍历。采用的搜索方法的特点是尽可能先对纵深方向进行搜索。
(1)访问顶点v;

(2)从v的未被访问的邻接点中选取一个顶点w,从w出发进行深度优先遍历;

(3)重复上述两步,直至图中所有和v有路径相通的顶点都被访问到。

广度遍历算法:图的广度优先遍历BFS算法和树的层次遍历算法类似,写算法时需要借助队列来实现。
Prim和Kruscal算法:两种算法都能构造最小生成树。

Dijkstra算法:计算一个节点到其他所有节点的最短路径。主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止。

2.PTA实验作业(4分)

本周要求挑选出3道题目书写设计思路、调试过程。设计思路使用伪代码描述。题目选做要求:

不能选6-1,6-2,6-3

2.1 题目1:7-3 六度空间(30 分)

2.2 设计思路(伪代码或流程图)

创建队列q,t记录节点所在层数,number记录与i距离不超过6的节点个数
	i先进栈
	置visited[i]=1
	while队列不为空
		令temp=出队节点
		遍历temp所连接的节点
			当该节点没有遍历过
		         把该节点入队列
                         number++
		 如果遍历到的节点在第六层,返回所得的number值

2.3 代码截图

请贴主要函数代码,一些操作函数代码不需要贴图。

2.4 PTA提交列表说明。

  • 把初始化visited[j]数组写在了创建邻接矩阵函数里,但是在调用BST(i)时,每次都要初始化该数据,应该要把它写在BST(i)函数里面。
  • 出现段错误,数据不够大。

2.1 题目2:7-4 公路村村通(30 分)

2.2 设计思路(伪代码或流程图)

创建邻接矩阵
	for  i=1  to  i<=n
	       dist[i]把G[1][i]干路的成本一一存放到dist[i]数组中
	令总成本num=0,count=0
	l令dist[S]=0
	count++
	while(1)
		i=findmin(n)
		if(没找到最小的)
		    break
		num+= dist[i]
		令dist[i] = 0
		for  int j=1  to  j<=n
			if(G[i][j]干路连通)
			     if(dist[j]!=0且G[i][j]<dist[j])
				  把dist[j]的值更新为G[i][j]
                end i
	end
        返回总成本num

2.3 代码截图(注意,截图、截图、截图。代码不要粘贴博客上。不用用···语法去渲染)




2.4 PTA提交列表说明。

  • 出现段错误,数组不够大。

2.1 题目3:7-2 排座位(25 分)

2.2 设计思路(伪代码或流程图)

   创建邻接矩阵
   while(k--)
	     输入a,b
        if(a和b是朋友)
         	输出"No problem"
        if(a和b不是朋友,也不敌对)
		 输出"OK"
        if(a和b敌对)
		 for i=1  to  i<=n
		       if(不存在共同好友)			
			     输出"OK but..."
                      if(存在共同好友)			
                             输出"No way"
      end k

2.3 代码截图(注意,截图、截图、截图。代码不要粘贴博客上。不用用···语法去渲染)



2.4 PTA提交列表说明。


  • 上图这个测试点没通过。

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

本次题目集总分:310分

3.1 PTA排名(截图带自己名字的排名)

3.2 我的总分:171(1.5分)

4. 阅读代码(必做,1分)

找一篇图结构应用代码
详细说明代码思想,学习地方。



Dijkstra算法:从起点开始,首先初始化到起点的距离为0,再初始化到其他顶点的路径为无穷大。
每次选择到达起点最近的那个顶点未被选择过的顶点,查看这个顶点作为起点的边,如果发现从这个顶点到边的另一个顶点的距离会更短,就更新它。

posted @ 2018-06-17 22:47  梁才玉  阅读(165)  评论(0编辑  收藏  举报