严蔚敏数据结构学习笔记七:图

【数据结构系列】严蔚敏C语言版算法实现并附带详细注释(逐步更新) 数据结构在编程过程中是不可或缺的,是举足轻重的,想要编写出一个好的程序,学好数据结构这门学科是必经之路。本文是各种数据结构实现的目录文章,我会在我学习数据结构这门课程的过程中逐步更新其中的内容。................................. 阅读详情
在广度优先搜索的基础上求图中两结点的最短路径需
1,将链队列的结点改为“双链”结点,即结点中包含next和priou两个指针;
2,修改入队列的操作,插入新的队尾结点时,令其priou域的指针指向刚刚出队列的结点,即当前的队头指针所指结点;
3,修改出队列的操作,出队列时,仅移动队头指针,而不将队头结点从链表中删除。

由于普里姆算法的时间复杂度为O( N的平方),则适于稠密图;而克鲁斯卡尔算法需对e条边按权值进行排序,其时间复杂度为o(eloge),则适于稀疏图。

7.5重(双)连通图和关节点
若从一个连通图中删去任何一个顶点及其相关联的边,它仍为一个连通图的话,则该连通图被称为重(双)连通图。
若连通图中的某个顶点和其相关联的边被删去之后,该连通图被分割成两个或两个以上的连通分量,则称此顶点为关节点。
没有关节点的连通图为双连通图。

关节点的特征:
    假设从某个顶点V出发对连通图进行深度优先搜索遍历,则可得到一棵深度优先生成树,树上包含图的所有顶点。
    若生成树的根结点,有两个或两个以上的分支,则此顶点(生成树的根)必为关节点;
    对生成树上的任意一个“顶点”,若其某棵子树的根或子树中的其它“顶点”没有和其祖先相通的回边,则该“顶点”必为关节点。

如何求关键点:
1)对根结点来说深度优先遍历看count是否小于结点数,如果小于则该根结点为关节点。
2)对生成树上的顶点定义一个函数:
low(v)=Min{visited[v],low[w],visited[k]}(k为和v有回边相通的顶点)
对顶点v,若(在生成树上)存在一个子树根w,且low[w]>=visited[v]则顶点v为关节点
对深度优先遍历算法作如下修改:
1,visited[v]的值改为遍历过程中顶点的访问次序count值
2,遍历过程中求得
low(v)=Min{visited[v],low[w],visited[k]}
3,从子树遍历返回时判别low[v]是否>=visited[v]

7.6两点之间的最短路径问题
从源点到其余各点的最短路径
算法的基本思想:
依路径长度递增的次序求得各条路径

7.7拓扑排序
如何进行拓扑排序
一,从有向图中选取一个没有前驱的顶点(入度为零的顶点),并输出之;
二,从有向图中删去此顶点以及所有以它为尾的弧(弧头顶点的入度减1);
重复上述两步,直至图空,或者图不空但找不到无前驱的顶点为止。

如何求关键活动
“事件(顶点)”的最早发生时间ve(j)=从源点到顶点的最长路径长度;
“事件”的最迟发生时间vl(k)=从顶点k到汇点的最短路径长度;
假设第i条弧为<j,k>则第i项“活动弧“的最早开始时间ee(i)=ve(j);
"活动(弧)"的最迟开始时间el(i)=vl(k)-dut(<j,k>);

算法的实现要点:
求ve的顺序应该是按拓扑有序的次序;而求vl的顺序应该是按拓扑逆序的次序;拓扑逆序序列即为拓扑有序序列的逆序列,因此应该在拓扑排序的过程中,另设一个“栈”记下拓扑有序序列。

收藏 《数据结构(C语言版)视频全集》—清华大学严蔚敏主讲 eMule资源 下面是用户共享的文件列表,安装eMule后,您可以点击这些文件名进行下载 数据结构(清华严蔚敏)_数据结构01.asf 详情 55.4MB 数据结构(清华严 阅读详情

相关推荐

严蔚敏版本的 图 邻接表 的 13个基本操作 真代码的完整C语言实现

#include "adjmap.h" /* * 数据结构 * 图 邻接表 * 严蔚敏书上的全部13个关于图的基本操作 * 由于严蔚敏的书上的操作要考虑有向图 有向网 无向图 无向网 非常的繁琐 * 而且大部分不管无向有向 很多操作几乎大同小异 没有必要去重复实现 * 因此为了程序的便捷只写一个有向网 * 网上的代码自己太菜又看不懂 于是自己实现一个图 * 和严蔚敏稍微有些区别的...

qq_15465023的博客 1620

拓扑排序

拓扑排序 一、拓扑排序的定义: 先引用一段百度百科上对于拓扑排序的定义: 对一个有向无环图 ( Directed Acyclic Graph 简称 DAG ) G 进行拓扑排序,是将 G 中所有顶点排成一个线性序列,使得图中任意一对顶点 u 和 v ,若边 < u , v > ∈ E ( G ),则 u 在线性序列中出现在 v 之前。通常,这样的线性序列称为满足拓扑次序 ( Topological Order ) 的序列,简称拓扑序列。简单的说,由某个集合上的一个偏序得到该集合上的一个全序,这

chenweiye1的博客 6万+

数据结构(C语言版)严蔚敏李冬梅(第2版)课后习题答案

数据结构(C语言版)严蔚敏(第2版) 课后习题答案 李冬梅 2015.3 目 录 [第1章 绪论]{.underline} 1 [第2章 线性表]{.underline} 5 [第3章 栈和队列]{.underline} 13 [第4章 串、数组和广义表]{.underline} 26 [第5章 树和二叉树]{.underline} 33 [第6章 图]{.underline} 43 [第7章 查...

sjltt的博客 8926

拓扑排序详解

古人学问无遗力 少壮功夫老始成

qq_56012214的博客 2万+

数据结构:严蔚敏、殷人昆快速排序规则不同的疑问

严蔚敏和殷人昆给出了两种不同的快排方法。虽然两种方法均正确,但排序中间步骤得到的序列不同,导致做题时对答案产生疑惑。本文对这两种快排算法进行总结与对比。Partition 过程:将要排序的数据分成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小。快速排序整个排序过程可以递归进行,以此达到整个数据变成有序序列。

寒泉 6万+

数据结构学习笔记(考研自用)

「迷路终可找到引领,漆黑也有星。」 目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 例如:第一章 Python 机器学习入门之pandas的使用 文章目录 系列文章目录 前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是..

m0_58833945的博客 1127

拓扑排序(topological sorting)介绍及Python实现

拓扑排序(topological sorting)介绍及Python实现,介绍了拓扑排序基本算法原理,并给出基于深度优先搜索和基于广度优先搜索的Python实现。

chenxy_bwave的专栏 2万+

数据结构(严蔚敏版)学习要点总结(一)

一、数据结构基本概念 1.数据:对客观事物的符号表示  数据元素:数据的基本单位  数据对象:性质相同的 数据元素 的集合  数据结构:相互之间存在一种或多种特定关系的数据元素的集合 2.数据元素之间的关系由两种表示:顺序映像和非顺序映像->顺序存储和链式存储 3.数据类型:是一个 值的集合 和定义在这个值集上的 一组操作 的总称 4.抽象数据类型:指一个数学模型以及定义在该模型

Anole的博客 6030

图结构专栏——拓扑排序

三种方法实现拓扑排序 一、什么是拓扑排序 在图论中,拓扑排序(Topological Sorting)是一个有向无环图(DAG, Directed Acyclic Graph)的所有顶点的线性序列。且该序列必须满足下面两个条件: 每个顶点出现且只出现一次。 若存在一条从顶点 A 到顶点 B 的路径,那么在序列中顶点 A 出现在顶点 B 的前面。 有向无环图(DAG)才有拓扑排序,非DAG图没有拓扑排序一说。 例如,下面这个图: 它是一个 DAG 图,那么如何写出它的拓扑排序呢?这里说一种比较常用的方法

lizefeng1998的博客 9023

严蔚敏数据结构教材完整学习包

本文还有配套的精品资源,点击获取 简介:《严蔚敏数据结构》是一本深入浅出地介绍数据结构的教材,由著名计算机科学家严蔚敏教授编写。它涵盖了计算机科学中组织、存储和检索数据的核心概念,并与算法紧密相关,为构建高效软件系统提供基础。该学习包提供了PDF和TXT两种格式的资料,满足不同用户的阅读和学习需求。教材内包含线性结构、栈与队列、树形结构、图、排序与查找、文件结构、动态规划、...

weixin_42433737的博客 1605

严蔚敏数据结构课程全套资料

本文还有配套的精品资源,点击获取 简介:数据结构是计算机科学的核心,严蔚敏教授的教材和资源在该领域享有盛誉。本压缩包提供了严教授课程相关的全套资料,包括电子书、习题集答案、纯C代码、教学讲义、数据结构笔记和1800道复习例题。通过学习这些资料,你可以深入理解数据结构,如线性表、栈、队列、树和图,并掌握排序和查找算法。此外,C语言代码示例和复习例题将帮助你巩固知识,为实际编程...

weixin_35753431的博客 1183

拓扑排序详解(包含算法原理图解、算法实现过程详解、算法例题变式全面讲解等)

非常详细的讲解。点开有惊喜!

aliyonghang的博客 2万+

《严蔚敏数据结构》源码及习题深度解析教程

线性表是最基本、最简单的一种数据结构,它是n个具有相同特性的数据元素的有限序列。在逻辑上,线性表可以被看作是一条直线,数据元素之间是一对一的关系。每个元素都有一个前驱和一个后继,除了第一个元素和最后一个元素外,其余元素都有且仅有一个前驱和一个后继。在编程中,线性表通常用于存储数据元素的集合,允许在表尾进行插入和删除操作,以及按位置访问元素。栈与队列作为数据结构中的基础组件,在算法设计和程序实现中扮演了重要角色。栈的后进先出特性适合处理回溯问题,而队列的先进先出特性适合于管理和调度任务。

weixin_36073714的博客 1117

2021-10-16【严蔚敏数据结构代码实现合集】【c语言学习必备】

线性表 2021-9-14【数据结构/严蔚敏】【顺序表】【代码实现算法2.1-2.7】 2021-9-18【数据结构/严蔚敏】【单链表】【代码实现算法2.8-2.12】 2021-9-18【数据结构/严蔚敏】【静态链表】【代码实现算法2.13-2.17】 2021-9-19【数据结构/严蔚敏】【双向链表】【代码实现算法2.18-2.19】 2021-9-19【数据结构/严蔚敏】【带头结点的线性表】【代码实现算法2.20-2.21】 2021-9-19【数据结构/严蔚敏】【一元多项式的表示及相加、相减、相乘

eternity_memory的博客 1万+

严蔚敏经典数据结构课程配套光盘资源完整版

数据结构是计算机程序高效运行的基石,研究数据的逻辑组织、物理存储及操作算法。它贯穿于算法设计、系统编程、数据库管理等核心领域,直接影响程序的时间与空间性能。掌握数据结构,意味着具备分析问题本质、选择合适工具解决问题的能力。抽象数据类型(Abstract Data Type, ADT)是对数据及其操作的数学描述,不涉及具体实现。线性表的ADT通常包括以下基本操作:操作描述InitList()初始化一个空线性表销毁线性表并释放资源Length()返回当前元素个数。

weixin_42515340的博客 640

清华严蔚敏《数据结构》教学笔记(加学习要点、习题答案)

清华严蔚敏《数据结构》教学笔记(加学习要点、习题答案)

【数据结构】严蔚敏版--学习&&复习笔记

----------------------------------------------------------- 写在前面: emmmmm,这个数据结构系列博客我会不定时持续更新,会在本文下边给出导航链接 关于实现形式的不同。在本书中给出的伪代码使用了C++部分内容,我在实现这本书中的算法时,我会使用C...

1900的博客 7485

如何制作微信小程序的在线购物商城应用

首先,你需要规划好商城的整体框架,确定好你的目标用户群体,思考他们的需求是什么。接下来,使用微信开发者工具创建一个新的小程序项目,输入你的AppID,选择好保存路径,点击“创建”,一个新的商城雏形就诞生了。你可以把这里当作自己的家,无论是工作之余的小憩,还是寻找灵感的驿站,我都希望你能在这里找到属于你的那份快乐和满足。数据是现代商业的灵魂,通过数据分析,你可以更准确地把握用户的行为模式,从而做出更明智的决策。

master_chenchen的博客 2429

IT女神节(致敬中国IT界永远的女神严蔚敏-数据结构)

我们都知道程序=数据结构+算法。相信很多人都学过严蔚敏的数据结构的课程。作为一个码农,在这不管是3.7女神节,还是3.8妇女节。我觉得都有必要向这些教育界的老前辈致敬。今天我就梳理梳理,最经典的数据结构教材。

JAVA领域优质创作者,基于分片网络查询方法专利发明者。 3575

阿里天池新闻推荐实战:多路召回策略解析与优化

本文深入解析阿里天池新闻推荐项目中的多路召回策略,包括ItemCF、UserCF、YouTubeDNN等五种召回模型的协同应用与优化技巧。通过实战案例展示如何提升推荐系统效果,特别针对冷启动问题提出创新解决方案,帮助开发者构建高效的新闻推荐系统。

weixin_26918763的博客 416

解决windows10下无法安装.net framework 3.5(包括.net2.0和3.0)

入域电脑,win10系统中安装 .net framework 3.5(包括.net2.0和3.0)

God_me_1的博客 4万+
上一篇: XP 下SQL Server 2000的安装
下一篇: netbeans
geting
博客等级 码龄20年 13粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值