首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
BackSlash
掘友等级
linux开发工程师
世界那么大,我想去看看
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
18
文章 18
沸点 0
赞
18
返回
|
搜索文章
最新
热门
数据结构与算法-表达式二叉树
二叉树的一种应用是无歧义地表示代数、关系或逻辑表达式。在上个世纪20年代初期,波兰的逻辑学家发明了一种命题逻辑的特殊表示方法,允许从公式中删除所有括号,称之为波兰表示法。但是,与原来带括号的公式相比,使用波兰表示法降低了公式的可读性,没有得到广泛的使用。在计算机出现后,这一表示…
数据结构与算法-kd二叉树(kNN)
承接上文,探讨kd二叉查找树的平衡、删除改进以及运用。 无论是普通的二叉查找树还是kd二叉查找树,频繁的添加以及删除操作都可能破坏整棵树的平衡,怎么办呢?对于普通的二叉查找树,可以通过DSW算法或者AVL算法进行平衡,相关内容可以看这里,数据结构与算法-二叉查找树(DSW)和数…
数据结构与算法-kd二叉树(基础)
前面探讨的各种二叉树,使用一个键值在树中导航以执行必要的操作,二叉树中每个节点都有唯一的一个key值,通过key我们可以组织二叉查找树、平衡树、自适应树、堆等,从某种意义上讲,这是一维的二叉树。假如我们现在要研究二维平面上n个点的性质,怎么将它们组织成二叉树呢?如果是3维空间或…
数据结构与算法-堆
上图是大顶堆,如果每个节点小于等于其每个子节点的值,那它就是小顶堆。 有趣的是,堆可以通过数组来实现。例如,数组 data = [50 43 49 15 28 40 30 5 10 23 15 20] 可以表示上面的堆。数组中元素的排放顺序表示节点按照从顶到底、每一层从左到右的…
数据结构与算法-自适应二叉树
平衡树主要关心的是使树不要倾向一方,理想状况下,叶节点只出现在一两个层次上。因此,新近到达的元素威胁到树的平衡,就要立即在局部重新构造树(AVL方法)或重新创建树(DSW方法),从而纠正这一问题。然后,这样的重新构造是否总是必要?二叉查找树用来快速插入、检索和删除元素,重要的是…
数据结构与算法-二叉查找树平衡(AVL)
上节讨论的DSW算法可以从全局重新平衡树:每个节点都可能参与树的重新平衡,或者从节点中移除数据,或者重新设置指针的值。但是,当插入或删除元素时,将只影响树的一部分,此时树的重新平衡可以只在局部进行。局部平衡二叉查找树有一个鼎鼎大名的算法,叫做AVL算法,由AVL算法构建出来的二…
数据结构与算法-二叉查找树平衡(DSW)
上一节探讨了二叉查找树的基本操作,二叉查找树的查找效率在理想状态下是O(lgn),使用该树进行查找总是比链表快得多。但是,该论点并不总是正确,因为查找效率和二叉树的形状息息相关。就像这样: 图1-1给出了3颗二叉查找树,它们存储着相同的数据,但很明显,图1-1(A)的树是最好的…
数据结构与算法-二叉查找树
了解二叉树的定义以及二叉树遍历之后,我们继续探讨二叉树的使用。二叉树是一种数据结构,是用来处理数据的。数据处理最简单的需求是查找、添加、删除,有一种二叉查找树可以满足以上需求。 二叉查找树也可以称之为有序二叉树。二叉查找树具有如下特性: 对于树中的每个节点n,其左子树中的值都小…
数据结构与算法-二叉树遍历
树的遍历是当且仅当访问树中每个节点一次的过程。遍历可以解释为把所有的节点放在一条线上,或者将树线性化。 遍历的定义只指定了一个条件:每个节点仅访问一次,没有指定这些节点的访问顺序。因此,节点有多少种排列方式,就有多少种遍历方法。对于有n个节点的树,共有n!个不同的遍历方式。然而…
数据结构与算法-二叉树性质
链表通常可以提供比数组更大的灵活性,但是由于链表是线性结构,所以很难使用它们来组织对象的分层结构。虽然栈和队列反映了某些层次,但它们是一维的。为了避免这种限制,我们来探究一种新的数据结构,称为树,树由节点和弧组成。 与自然界的树不同,数据结构中的树是倒过来的:根在顶部,叶子(末…
下一页
个人成就
文章被点赞
46
文章被阅读
21,102
掘力值
522
关注了
1
关注者
30
收藏集
1
关注标签
2
加入于
2018-08-12