本章的内容主要讲图的知识,图与树的定义相似,让树容许在其每一个结点连通多个其余节点,再也不有父亲孩子之说时就成了图。图由顶点和边构成,顶点通常由A,B,C,D等表示,相应的边能够表示成(A,B),(B,C)等。图分为两种:有向图和无向图。java
连通的无向图:若是无向图中任意两个顶点之间都存在一条路径,则认为该无向图是连通的。git
最小生成树:首先明确生成树的概念,包含图的所有顶点和全部边。最小生成树,其边的权重之和小于或等于同一个图中其余任何一个生成树。例如,普利姆算法求最小生成树:
算法
图的实现策略:书上讲到了两种实现策略,邻接列表和邻接矩阵,而所谓邻接指的就是实现图的两个相邻的顶点链接起来。数组
如图:网络
如图:数据结构
问题二解决方案:其实这个问题很是简单,只是本身的脑子没扭过来,直接把那个1变为须要加上的权重就实现了加权图。oop
Graph
类补全时遇到一些困难。。isEmpty
方法,我本来的代码以下:public boolean isEmpty() { if (numVertices == 0) { return true; } else { return false; } }
public boolean isEmpty() { return (numVertices == 0) }
本身想了想发现这样的确会简单不少。这告诉咱们应该多多想一想算法的优化。学习
错题1解析:堆排序的时间复杂度是O(nlogn)测试
错题2解析:跟上题同理。优化
(本部分用于收集本章节后的生词)
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 0/5000 | 2/2 | 8/8 | 认真学习!积极向上 |
第二周 | 812/812 | 1/3 | 22/30 | |
第三周 | 814/1626 | 1/4 | 20/50 | |
第四周 | 1386/3012 | 2/6 | 20/70 | 愉快的国庆节就要结束了... |
第五周 | 1222/3234 | 1/7 | 30/100 | |
第六周 | 1327/4561 | 2/7 | 30/100 | 啦啦啦啦啦 |
第七周 | 1170/5631 | 1/8 | 33/133 | |
第八周 | 1250/6881 | 2/10 | 30/163 | |
第九周 | 2275/9156 | 1/11 | 31/194 |