数据结构
Oeljeklaus
python开发,大数据,图数据,数据分析
展开
-
常用几种排序算法
三种时间复杂度为O(n2)的排序算法 插入排序 插入排序的主要思想是:每一次得到一个新的元素,就和原来已经排序好的序列对比,然后将这个新的元素插入到正确的位置,具体的代码实现:void insertSort(int a[],int length) { if(a==NULL||length<=0) return; for(int i=1;i<length;i++) { ...原创 2018-05-01 11:18:48 · 1262 阅读 · 0 评论 -
二叉树(一)定义与特征;
基本概念,系形如上图结构的树为二叉树。针对于某个节点,根节点到该节点的长度为深度,该节点的层数为深度。默认的,对与根节点,深度为0,高度为1,层数为0.任何深度为d的节点的层数都是d。面试中,经常问到的几个问题。满二叉树:每一个节点或者是一个分支节点,并恰好有两个非空子节点;或者是叶节点。完全二叉树:从根节点开始从左到右填充,一颗高度为d的完全二叉树,除了d-1层意外,其他的层都是满的。注意:满二...原创 2018-04-27 11:16:27 · 1556 阅读 · 0 评论 -
二叉树(二) 二叉树的几种遍历(前序、中序、后序)
前序遍历,先访问根节点,在访问坐左子树节点,在访问右子树节点。上图的前序遍历:A B D C E G F H I 中序遍历,先访问左子树,后访问根,在访问右子树,上图中序遍历B D A G E C H F I 后序遍历,先访问左子树,后访问右子树,在访问根节点,上图后序遍历D B G E H I F C A 代码实现:#include <iostream> #include <s...原创 2018-04-27 11:49:45 · 1250 阅读 · 0 评论 -
二叉树(三) 完全二叉树的实现
首次,我们来复习一下完全二叉树的定义:高度为d的二叉树,除了d-1层(即最后一层)以外,其他层都是满的。我们可以按照编号填充完全二叉树,填充的顺序如下我们可以得出一下规律:leftChild=parent*2+1;rightChild=parent*2+2;parent=(child-1)/2;对于一个节点数量为n的完全二叉树,在数组中从0开始填充,非叶子结点最大的下标值为(n-2)/2;...原创 2018-04-27 15:14:37 · 1723 阅读 · 0 评论 -
二叉树(四) 二叉查找树(BST)
二叉查找树:对于二叉查找树的任何一个节点,设这个节点的值为K,这个节点的左子树的任意一个节点的值都小于K,右子树的任何一个节点的值都大于等于K。对于任何的二叉查找树,使用中序遍历(左根右),可以将值从小到大打印出来。对于二叉查找树的检索,例如图a,需要检索32,那么首先需要检索根节点,发现37大于32,进入二叉搜索树的左子树,发现24小于32,然后在进入右子树,发现根节点等于32,那么就返回找到了...原创 2018-04-27 16:02:14 · 1656 阅读 · 0 评论 -
二叉树(五)堆和优先队列(heap)
1.堆的定义:堆是一颗完全二叉树,堆中存储的数据局部有序。2.最大堆的性质:任意一个节点的值,大于等于其子节点的值,所以根据这一特性,我们知道最大堆中,根节点一定是最大的值。3.最小堆的性质:任意一个节点的值,小于等于其子节点的值,所以根据这一特性,我们知道最小堆中,根节点一定是最小的值。堆和BST的区别:这两者没有任何关系,BST主要是左子树一定小于右子树的节点,但是堆中,左子树的所有节点可以大...原创 2018-04-27 17:48:17 · 1809 阅读 · 0 评论 -
先序遍历和后序遍历为什么不能唯一地确定一棵树?
以前大学学数据结果的时候,我们就知道,根据一棵树的先序遍历和中序遍历,或者后序遍历和中序遍历序列,都可以唯一地确定一棵树。树中的节点,分为度为0,1,2的结点。如果树中只有一个节点,那么可以唯一确定一棵树,即只有一个节点的树。当树中结点个数大于等于2的情况,树中的叶子结点和它的父亲结点中,至少有一种存在如下的情况。(为方便起见,我们先从叶子节点入手) case 1: ...转载 2018-04-29 21:19:06 · 4609 阅读 · 0 评论 -
数据结构之布隆过滤器
数据结构之布隆过滤器 01 引言 您可能从未听说过Bloom Filter,但是这个巧妙的算法在Google的BigTable数据库中使用,以节省时间,无需搜索不存在的数据。 在编程中,也许在生活中,有一些众所周知的权衡。您通常可以将空间交换一段时间,因为您可以通过更多的存储空间来解决问题,您可以更快地运行空间。还有一个鲜为人知的权衡,它更为复杂。一般来说,您可以确定时...原创 2019-03-16 10:18:27 · 1042 阅读 · 0 评论