基础算法与数据结构(六) 图与其基础算法
图的基础概念 图的定义: 无向图: 一个图G = (V,E)由顶点(或结点)的非空集V和边的集合E构成,每条边有一个或两个顶点与它相连,这样的顶点称为端点。边连接它的端点。(顶点集为无限的称为无限图,反之称为有限图) 有向图:一个有向图(V,E)由一个非空顶点集V和一个有向边集E组成。每条有向边与一个顶点有序对相关联。与有序对(u,v)相关联的有向边开始于u,结束于v 图的...
图的基础概念 图的定义: 无向图: 一个图G = (V,E)由顶点(或结点)的非空集V和边的集合E构成,每条边有一个或两个顶点与它相连,这样的顶点称为端点。边连接它的端点。(顶点集为无限的称为无限图,反之称为有限图) 有向图:一个有向图(V,E)由一个非空顶点集V和一个有向边集E组成。每条有向边与一个顶点有序对相关联。与有序对(u,v)相关联的有向边开始于u,结束于v 图的...
本文中所有与红黑树有关的代码均来自于刘新宇所著《算法新解》中的红黑树章节。 平衡二叉树 根据之前的表述,因为二叉树可能为退化为链表,所以产生了平衡二叉树这个产物,主要为了避免在插入值的时候产生退化的问题。 平衡二叉树主要有两种实现方式,一种是红黑树,一种是AVL树。首先先复习红黑树。 2-3树 在介绍红黑树之前,先介绍一种理想的平衡二叉树 — 2-3树 2-3树有两种节点,分别是2结...
AVL树的定义 平衡因子:δ(T) = R - L 若δ(T) = 0 那么这棵树是平衡的,其绝对值越小,说明树越平衡。 A...
二叉搜索树的定义 二叉搜索树(BST)每个结点均含有一个可比较的key和对应的value,左侧子树所有的key都比根节点小,右侧子树的所有key均比根节点大。 struct TreeNode{ int key; int value; TreeNode* left; TreeNode* right; TreeNode(int key,int value) { this.key...
树的基本数据结构 //tree struct normalTreeNode { int val; TreeNode* sons[]; }; //binary tree struct TreeNode { int val; TreeNode *left; TreeNode *right; TreeNode(int...
本部分内容一般选用C++,如有Java代码,将有明确标注。 链表的基础数据结构 struct ListNode{ int val; //may be the other data type ListNode* next; ListNode(int val){ this.val = val; this.next = null; } } 链表...
有众多理由来抨击这篇文章,看完了可以看完后安慰自己我们是「中国特色」。不想有无意义的争辩,毕竟这是我的个人言论,你也可以完全不赞同,但愿这个社会有着一定程度的言论自由。 要让那些反民主的人,那些认为民主就是毁坏、混乱、谋杀和贪污的人知道:民主有着其高贵之处,只不过民主的高贵,和他们的理解不一样。民主的高贵,是让每一个人身上都有一点高贵、有一点尊严,而不是让极少数人拥有尊严跟高贵。 ...
想了很久,还是写点什么来记录一下两年来的一些微小的事情。 世路如今已慣,此心到處悠然。 最近,还是做出了一个算是重要的决定吧,和ACM-ICPC说再见。 怎么说,或许还是感觉自己天赋不够,努力不足。尤其是在这次期末考试现场结果和最后结果因为一些无谓的原因相差那么大之后,这种无力感越来越深厚。最后我想,还是默默地做一个安静的旁观者或许是个更好的选择。 两年多来,感觉还是花...
计算几何专题练习 P.S:含有数学公式。。。如没有显示麻烦刷新,谢谢。 Contents: 1.基础题目 1.1 uva11437 1.2 uva11800 1.3 uva11646 2.二维几何计算 2.1 uva11178 (EX.) 2.2 uva1342(EX.) ...
本文中含有数学公式,若无法显示请刷新重试,谢谢~ Lesson 1 插入排序 1 插入排序的基本原理(递增排序) 取当前元素往前序寻找。依序比较,若前一元素比当前大,则被比较元素往后移动一位;以此类推,直至找到第一个比其小的元素,则停止寻找,这个位置的后一个就是应该放的位置。 2 插入排序的C++实现 void insertionsort(vector<int>sort...