数据结构第六章小结

邻接矩阵

#define MNNum 100//最大顶点数
typedef char VerTexTypre;//顶点的数据类型
typedef int ArcType;//顶点的权值类型
typedef struct
{
   VerTexType vexs[MVNum];//顶点表
   ArcType arcs[MVNum][MVNum];//邻接矩阵
   int vexnum, arcnum;//图的点数和边数
}AMGraph;

邻接表

#define MVNum 100//最大顶点数
typedef struct ArcNode//边结点
{
     int adjvex;//该边的顶点位置
     struct ArcNode *nextarc;//指向下一条边的指针
     otherInfo info;//和边相关的信息,比如权值
}ArcNode;
typedef struct VNode//顶点信息
{
   VerTexType data;
   ArcNode *firstarc;//指向第一条依附该顶点的边的指针
 }VNode, AdjList[MVNum];//邻接表的类型
typedef struct
{
   AdjList vertices;
   int vexnum,arcnum;
}ALGraph;

6.2个人小测

第三题,其实自己已经注意到了题目给的坑,先从0开始访问顶点,再从顶点所在的行的后面开始访问!!可是自己存在两个问题,没有注意到是从0开始的,所以我是把他们改成了从下标1开始,第二个问题就是第0个是独立的,而我却直接把它略过,从题目所说的第1(我的第二)开始。这就导致了我得了零分!!然后我觉得我还是得仔细的阅读题目,而且不要手忙脚乱的太慌。

6.8练习

单元最小路径,因为老师讲课的时候是没有图里面的数据,在练习里面是有数据(A,B,C,)之类的,然后我应该要把数据换成整型,这样在刷新的时候才能做到数组元素一致。两个顶点是否有边,而我却考虑成两个顶点之后存在路径,问题复杂化,导致自己写出来的代码很奇怪,也搞不太懂。听了老师讲解才觉得如此简单!!!

在这次的pta作业第六章作业中,我觉得这道题好微妙!!就是在于必须要认真 的考虑到刷新visited数组的情况,因为有bfs和dfs都要用到。或者说直接用两个全局变量数组visit和visited也是可以解决的!!!

dfs和bfs生成的树的高度是怎样的?

bfs生成的树与dfs的树一样高或者是更高。因为dfs生成树的是否是按照每个点到根节点的距离是最短的,而bfs就没有这个限制

心得:

这章的知识点有点点的多,主要是各种算法,遍历的算法bfs,dfs以及最短路径和最小生成树的算法。但是只要自己去过了一遍,感觉还是挺好理解的,最近发现结合表格好像更容易理解!!!如果把pta的所有题目都当做练习弄懂收获还是很大的!!之前还总是懵懵懂懂的选择判断,以为敲代码才是最重要的。希望自己以后要多多改变常规的思维,不要有很大的限制。而且要仔仔细细的看书,把知识点弄懂,这样在做选择判断题的时候才不会懵懵懂懂!!

 

posted @ 2020-06-14 17:08  彭珊珊  阅读(269)  评论(0编辑  收藏  举报