第六章学习小结
1.图的概念:
①图:有/无向图,完全图,有/无向完全图;
②度:入度,出度,有向图顶点的度等于该顶点的入度和出度之和;
③邻接与路径;
④连通图,连通分量,强连通图;
⑤权值;
2.定义:
①邻接矩阵:
typedef struct { char vexs[maxvexs]; int arcs[maxvexs][maxvexs]; int vexnum, arcnum; }AMGraph;
②邻接表:
typedef struct GraphNode { int vexnum; int weight; //权值 struct GraphNode *next; //指向下一个结点 }GraphNode;//边表结点 typedef struct VertexNode //顶点表 { char data; //顶点域,存储顶点信息 GraphNode *firstvex; //边表头指针 }VertexNode,AdjList[MAXVEX]; typedef struct { AdjList adjList; int numVertexes,numEdges;//图中当前顶点数和边数 }GraphAdjList;
3.图的遍历
①BFS:广度优先搜索
②DFS:深度优先搜索
4.最短路径:Dijkstra算法
5.最小生成树:Prim算法与Kruskal算法
在这一章里面,总体来说理解不会太难,但应用到代码里面会有些混乱,自己不能懒,必须动手去打和多看书参考。