数据结构与算法
二叉树,堆,森林等等,排序算法
codingriver
这个作者很懒,什么都没留下…
展开
-
伸展树详解(SplayTree)(可视化工具)
参考:邓俊辉 的数据结构,图片来自该资料除了AVL树,本章将按照二叉搜索树的介绍,继续介绍平衡二叉搜索树家族中的另一个成员—Splay伸展树。伸展树(SplayTree)相对于AVL,Splay的实现更为简捷。伸展树无需时刻都严格地保持全树的平衡,但却能够在任何足够长的真实操作序列中,保持分摊意义上的高效率。伸展树也不需要对基本的二叉树节点结构,做任何附加的要求或改动,更不需要记录平衡因子或高度之类的额外信息,故适用范围更广。通常在任意数据结构的生命期内,执行不同操作的概率往往极不均衡,而且.原创 2020-08-04 16:58:02 · 1341 阅读 · 0 评论 -
树和二叉树基本讲解
文章中树的概念和二叉树的定义转自二叉查找树(一)之 图文解析 和 C语言的实现0X01 树的概念1. 树的定义树是一种数据结构,它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:(01) 每个节点有零个或多个子节点;(02) 没有父节点的节点称为根节点;(03) 每一个非根节点有且只有一个父节点;(04) 除了根节点外,每个子节点可以分为多个不相交的子树。2. 树的基本术语若.原创 2020-07-27 18:01:54 · 3000 阅读 · 0 评论 -
AVL树详解(可视化工具)
转自:AVL树(一)之 图文解析 和 C语言的实现(本文图片及文字描述基本转自该文)代码是C#写的AVL树是根据它的发明者G.M. Adelson-Velsky和E.M. Landis命名的。它是最先发明的自平衡二叉查找树,也被称为高度平衡树。相比于"二叉查找树",它的特点是:AVL树中任何节点的两个子树的高度最大差别为1。(树的高度:树中结点的最大层次)上面的两张图片,左边的是AVL树,它的任何节点的两个子树的高度差别都<=1;而右边的不是AVL树,因为7的两颗子树的高度相差为2(以.原创 2020-07-27 16:28:43 · 2052 阅读 · 0 评论 -
十大经典排序算法及比较与分析 ( 动画演示 ) ( 可视化工具 )
冒泡排序(起泡排序)稳定算法时间复杂度 :O(n²)//起泡排序算法(版本1)void bubblesort(int A[],int n){ bool sorted = false; //整体排序标志,首先假定尚未排序 while (!sorted) //在尚未确认已全局排序之前,逐趟进行扫描交换 { sorted = true; //假定已经排序 for (int i=1;i<n;i++) //自左向右逐对检查当前范围A[0, n)内的各相邻元素 { if (A原创 2020-07-01 19:07:46 · 3458 阅读 · 0 评论 -
二叉查找树(二叉排序树、二叉搜索树)详解(可视化工具)
二叉查找树又叫 二叉排序树、二叉搜索树文章中树的概念和二叉树的定义转自二叉查找树(一)之 图文解析 和 C语言的实现前驱节点和后继节点 参考:二叉搜索树的前驱节点和后继节点删除节点参考:二叉查找树 - 删除节点 详解(Java实现)树的概念1. 树的定义树是一种数据结构,它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:(01) 每个节点有零个或多个子节点;(02) 没有父节点.原创 2020-07-23 22:36:14 · 1734 阅读 · 0 评论 -
A*算法理解(unity C#)
最近发现A*算法忘的一干二净啊,记忆是个好东西,可惜吾没有啊,只能整理一篇文章以备日后翻看这里只谈A*算法的实现,不谈A算法的优化*这里的工程是unity版本的,当然理解A*算法是通用的这里先放上A*算法的unity工程(unity2017.3.1) Github工程 0X01 A*算法基本概念启发式搜索: 启发式搜索就是在状态空间中的搜索对每一个搜索的位置进行评估,得到最好的位置,...原创 2018-10-19 17:54:56 · 9774 阅读 · 4 评论