边没有方向的图称为无向图。
html
含有最多条边的无向图称为彻底图:Edges=(n-1)*n/2.
java
若是图中两个顶点之间有边链接,则称这两个顶点是邻接的(邻居),本身链接到本身的边称为自循环或悬挂。git
若是给图的每条边规定一个方向,那么获得的图称为有向图,其边也称为有向边。在有向图中,与一个节点相关联的边有出边和入边之分,而与一个有向边关联的两个点也有始点和终点之分。算法
树就是图,树的大部分工做是针对有向树。有向树是一个有向图。数组
无向带权图
服务器
有向带权图
网络
十字链表法数据结构
问题2解决方案:学习
1.彻底是任意两个顶点之间都会有一条边。 2.连通是任意两个顶点之间都存在一条路径。 3.彻底的必定连通。
问题3解决方案:测试
广度优先遍历:左看看、又看看,雨露均沾。
1. 初始化队列:visited[n] = 0 2. 访问顶点:visited[v] = 1 3. 顶点v加入队列 4. 循环: while(队列是否为空) v = 队列头元素 w = v的第一个邻接点 while(w存在) if(若是w未访问) visited[w] = 1; 顶点w加入队列 w = 顶点v的下一个邻接点
1. 访问数组初始化:visited[n] = 0 2. 访问顶点:visited[v] = 1 3. 取v的第一个邻接点w; 4. 循环递归: while(w存在) if(w未被访问过) 从顶点w出发递归执行; w = v的下一个邻接点;
public boolean isConnected() { boolean result = true; for(int i=0;i<numVertices;i++){ int temp=0; temp=getSizeOfIterator(this.iteratorBFS(vertices[i])); if(temp!=numVertices) { result = false; break; } } return result; }
上周没有考试,因此没有错题。
本周主要学习了图的知识,例如如何画邻接矩阵、十字链表和邻接链表。如何计算图的广度优先遍历和深度优先遍历。还有用Prim算法和Kruskal算法计算最小生成树等等。
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 10000行 | 30篇 | 400小时 | |
第一周 | 56/56 | 2/2 | 20/20 | 主要学会了简单的操做Linux以及如何编写简单的java程序并将它上传到码云 |
第2、三周 | 331/407 | 3/5 | 23/43 | 学会了一些类和程序包的使用,也明白了C语言和Java在有些地方的区别 |
第四周 | 595/1002 | 2/7 | 20/60 | 学会了IDEA以及用IDEAgit码云,也学会了TDD测试 |
第五周 | 1621/2623 | 2/9 | 17/77 | 见识了服务器与用户连接的代码,也学习了继承的一些知识。 |
第六周 | 1770/4393 | 1/10 | 22/99 | 学习了多态以及与接口和继承的关系,还有就是对异常的学习和处理异常的方法以及自定义一个异常 |
第七周 | 1747/6140 | 3/13 | 23/122 | 学习了渐进复杂度的计算,栈和队列的学习,分别用数组和链表实现队列 |
第八周 | 384/6524 | 1/14 | 20/142 | 学习了一些查找和排序的算法,也学会了计算ASL |
第九周 | 1895/8419 | 3/17 | 22/164 | 学习了树的四种遍历,和怎样根据已知序列求未知序列等等 |
第十周 | 1946/10365 | 3/20 | 22/183 | 学习了如何求图图的广度和深度优先遍历,以及如何用Prim算法和Kruskal算法计算最小生成树等等。 |
计划学习时间:20小时
实际学习时间:22小时
改进状况:无