第六章学习小结

本章学习了图的结构和应用,学完之后觉得图其实就是数组与链表的结合。

对于邻接表和十字链表的两种不同的储存结构,对于邻接表来说,优点在于可以储存有向图与无向图,便于增加和删除顶点和统计边的数目,同时它的空间效率也高,对于有向图可以建立逆邻接表;十字链表作为有向图的另一种链式存储。在十字链表中容易找到Vi的尾的弧,也容易找到以Vi为头的弧,因而容易求得顶点的出度和入度。

然后是这一章节的重点,图的遍历,氛围DFS和BFS

对于DFS深度优先搜索来说,这是树先序遍历的推广,按照递归,先沿着一条道走到黑,撞到南墙后,再返回一层,找另一条路继续走,不停返回,不停深入。

void DFS(ALGraph G, int v) {
    ArcNode *p = new ArcNode;  
    int w = 0; 
    cout << G.vertices[v].data << endl;
    visited[v] = true;
    p = G.vertices[v].firstarc;
    while (p != NULL) {
        w = p->adjvex;
        if (visited[w] == false) {
            DFS(G, w);
        }
        p = p->nextarc;
    }
}

另一个是BFS广度优先搜索,追求一个覆盖面积,在求最短路径或最优方案时进行使用有明显的优点。BFS利用队列,起始顶点先入队,对于每一个准备入队的顶点进行以下的操作:

1、先访问再入队 对出队元素x 的每个邻接点做判断,如果为访问,则访问后入队。

2、直接入队  对出队元素x 先判断是否访问,访问后,x 的邻接点入队。

 

因为对于图的知识掌握还不够牢固,觉得自己在这个ddl之前没有办法把PTA的代码写出来,所以重新看了一遍书,查了查CSDN上面一些大牛发布的教程还有心得,算是把课重新上了一遍复习了一遍,然后记录下一些重点的内容,这样做起题来效率就可以搞一些不用做一道题查一堆内容了。

 

转载于:https://www.cnblogs.com/xhongk/p/10891085.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值