• DS博客作业06--图


    1.本周学习总结

    1.思维导图

    2.谈谈你对图结构的认识及学习体会。

    其实在学习图之前我是有点担心学不好图的,因为之前学树的时候就已经花费了我很大的心力了,而图是一种比树更复杂的结构,但真正学起来的时候却发现图比树还要容易学一点,可能是图的各种操作递归用得比较少和存储结构更容易理解一点把。
    

    2.PTA实验作业

    2.1.题目1:7-3 六度空间

    2.1.1设计思路

    其实就是图的广度优先遍历

    定义队列q
    将起始节点入队并标记此节点已遍历过
    while(队列不空)
    {
    	p = G->adjlist[q.top()].firstarc;
    	q.pop();
    	n++;//记录遍历的节点数
    	while(p)
    	{
    		如果p未遍历则将其入队,并标记
    		p=p->nextarc; 
    	} 
    	if(当层的节点已遍历完)
    	{
    		h++;//遍历的层数+1
    		if(h>7)break;//遍历的层数超过7则结束遍历 
    	} 
    } 
    return s;
    

    2.1.2代码截图


    2.1.3本题PTA提交列表说明。

    2.2 题目2:修建道路

    2.2.1设计思路

    其实就是建最小生成树,用克鲁斯卡尔算法做会简单一点

    typedef struct
    {
    	int u;//边的起始顶点
    	int v;//边的终止顶点
    	int w;//边的权值
    }Edge;
    定义Edge数组E[MAXV],整型数组vest[MAXV] 
    把边存入E中,并按升序排序
    初始化数组vest
    输入已存在的边并修改vest数组,每输入一次n就+1 
    while(n<g.n) 
    {
    	若边的起点与终点不属于同一个集合
    	s+=E.w;
    	合并两点所属的集合 
    	n++ 
    } 
    返回s 
    

    2.2.2代码截图


    2.2.3本题PTA提交列表说明。


    (其实这道题用并查集的,但我懒得改了,虽然并查集的代码也就十行左右。。。)

    2.3 题目3:旅游规划

    2.3.1设计思路

    最短路径问题,可以用Dijkstra算法或Floyd算法解决,这里我用的是Floyd算法

    初始化A和path数组
    for(k=0;k<g.n;k++)
    	for(i=0;i<g.n;i++)
    		for(j=0;j<g.n;j++)
    		{
    			若从i到j的路径比从i到k再到j的路径短则修改A数组和path数组
    			若二者相同则记录两条路径中所花费的钱比较少的那条 
    		} 
    

    2.3.2代码截图


    2.3.3本题PTA提交列表说明。


    (其实这道题用Dijkstra算法来做更好,只不过Floyd算法代码比较少,所以我就用Floyd算法来做了。。。)

    3.上机考试错题及处理办法

    这次考试由于我对部分算法还不太熟练,解题所用的时间过长,导致最终没时间去解其余的题目

    3.1.截图错题代码

    考试时来不及做,交的代码是输出样例的,就不贴出来了。。。

    3.2 错的原因及处理方法

    6-1


    (别问为什么没有7-3。。。)

  • 相关阅读:
    Useful for Android the development engineer from Github
    Compile a native C Android application
    android-non-ui-ui-thread-communications-part-5-5
    android-non-ui-to-ui-thread-communications-part-4-of-5
    Android Non-UI to UI Thread Communications(Part 3 of 5)
    webpack 配置的相关标准化
    eslint 配置规则
    移动端自己实现table的思路
    前端 转pdf的方法
    关于git 提交的一些规范
  • 原文地址:https://www.cnblogs.com/xycm/p/10959687.html
Copyright © 2020-2023  润新知