一、图的一些基本概念
来源:互联网 发布:杯酒释兵权知乎 编辑:程序博客网 时间:2024/05/01 06:28
一 图基本
图这个东西博大精深,而且有图论这门学科,虽然选修过,但最后自己剩下的东西真的不多,而且这玩意需要及时的回顾,不然很容易就忘了。
Kongsiberg七桥问题是很经典的图引入问题,涉及到Euler环和一笔画问题。
一个图,简单说来是由顶点和边组成,我们可以用一个三元组描述即G=(V,E,I),V为图总顶点集合,E为边的集合,I为关联关系。而且图能分为有向图和无向图。
顶点v的度数记为d(v),图中必有: 所有顶点的度数之和是边数之和的两倍,应为一条边相当于连接了两个顶点,即算度数的时候*2。另外,在图中,度数为奇的顶点个数一定为偶数个,因为最后总度数一定为偶。在实际中的应用有:在一个宴会上,同奇数个人握手的人数个数一定为偶。
途径:顶点和边交叉出现。
迹:边不重复的途径。
路:顶点不重复的途径。(路比迹更严格)
连通的(任意两点之间有途径),连通分支数。
不含圈的连通图成为树。一棵n顶点树的边数恰为n-1。由连通图可以获得其生成树。
不含圈的图成为森林。
子图:G1=(V1,E1)是G的子图,则V1是V的子集,同时E1是E的子集。
生成子图:比子图要求多点,顶点不变,边是原图的子集。
图还可以分为:有向图和无向图。有向图有出度和入度,出为d+(v)入为d-(v),且在有向图中两者相等。有向图中有连通和强连通之分,强连通双向,有向图的连通是指有向图的基础图连通(即把有向边当作普通边,有向图成为了无向图)。
定理:若G是具有n个顶点,m条边的图,则下列成立:
①若G是树,则m=n-1;
②G为连通图,且m=n-1,则G为树;
③G不包含圈,且m=n-1,则G为树;
④若G由k个树组成,则m=n-k;
⑤若G有k个连通分支,且m=n-k,则G为森林。
图的实现:主要有邻接矩阵(维度上都是顶点),关联矩阵(顶点和边各占一个维度),邻接链表
图的遍历:宽度优先搜索算法(BFS)和广度优先搜索算法(DFS)。
在BFS中,当搜索到某个顶点时候,就要依次将该顶点的所有相邻顶点访问;在DFS中,当搜索到某个顶点时候,继续纵深搜索与该节点相邻的其他一个未搜索过的顶点。前者可以用队列实现,后者可以用战实现。在实现的过程中,可以加入程序,以生成相应的生成树。
二 树相关
树中,从根到每个叶子节点都有一条唯一的路,树中最长路的长度为该树的高度,顶点的深度(根到顶点的路长),顶点的层次(从下往上)。
二叉树(每个顶点最多有两个儿子的树)。满二叉树,即出了叶子节点,每个顶点都有两个孩子。完全二叉树,为满二叉树的一部分。
二叉树的一些基本算法有:先序(先根),中序(中根),后序(后根)。
三 图的表示
主要有两种:邻接矩阵和邻接表
- 一、图的一些基本概念
- 图的一些基本概念
- 图的一些基本概念
- 学习C的一些基本概念(一)
- 数字电视范畴的一些基本概念一
- 有关网络爬虫的一些基本概念(一)
- 图的基本概念(一)
- 二分图的一些基本概念
- 图的基本概念(一)
- [ULK11]信号(一):一些基本概念
- 闪存的一些基本概念及其技术融合趋势(一)
- oracle 11g RAC 的一些基本概念(一)
- 初识OAF开发(一)--BC4J的一些基本概念
- oracle 11g RAC 的一些基本概念(一)
- Android的一些基本概念小整理(一)
- oracle 11g RAC 的一些基本概念(一)
- oracle 11g RAC 的一些基本概念(一)
- Zookeeper学习笔记一:分布式一致性的一些基本概念
- 使用PostBackUrl属性实现跨页面传值
- Android面试题目
- Linux下使用automake autoconf autoscan aclocal简单介绍
- JS绘图1
- Css扫盲之float
- 一、图的一些基本概念
- js绘图2
- Asp.net下载功能的解决方案代码
- 矩阵复习四-特征值与特征向量
- 多语言实例下载(源程序)
- struts2学习笔记
- JS绘图3
- DiscuzNT 论坛与主站的同步登录与退出
- Android 2.2 单点触摸支持的问题