数据结构
文章平均质量分 60
qq_33417547
我是陕西人
展开
-
二叉搜索树的实现
首先我们先来看看二叉搜索树的性质:1. 每个节点都有一个作为搜索依据的关键码(key),所有节点的关键码互不相同。2. 左子树上所有节点的关键码(key)都小于根节点的关键码(key)。3. 右子树上所有节点的关键码(key)都大于根节点的关键码(key)。4. 左右子树都是二叉搜索树。首先来看看二叉搜索树的插入:1:首先判断树是否为空,为空就new新节点,放入原创 2016-10-23 15:03:30 · 399 阅读 · 0 评论 -
大数据面试题分析
最近看到一些大数据的面试题,今天就在这里好好分析一下。大数据面试题的条件一般都要求我们处理一批计算机内存放不下的数据。当我们遇到这种面试题时,我们会不知到该怎么办,其实我们可以通过以下这些思想来完成大数据处理: 1. 哈希切分 哈希切分就是将一个大文件,利用哈希的原理,将其分为若干个小文件。相同的数据都被分到同一个文件里。例如我有一个存放着100亿个整数的大文件,将其分为100个小文件。将原创 2016-11-10 15:12:21 · 1848 阅读 · 0 评论 -
二叉树中最远两个节点的距离
计算一个二叉树的最大距离有两个情况:情况1: 路径经过左子树的最深节点,通过根节点,再到右子树的最深节点。情况2: 路径不穿过根节点,而是左子树或右子树的最大距离路径,取其大者。只需要计算这两个情况的路径距离,并取其大者,就是该二叉树的最大距离。下面是实现代码:struct node { node *pLeft; node *pRi原创 2016-12-01 16:47:34 · 2965 阅读 · 0 评论 -
判断一颗二叉树是否是完全二叉树
我们知道,假如一棵二叉树的高度是h,对于一棵完全二叉树,它的前h-1行一定是满的,第h行可以满也可以不满,但是结点必须集中于最后一行的左边,如果满则是满二叉树,不满的就是完全二叉树。那么那么我们该如何做呢? 如果一个结点有右孩子而没有左孩子,那么这棵树一定不是完全二叉树。 如果一个结点有左孩子,而没有右孩子,那么按照层序遍历的结果,这个结点之后的所有结点都是叶子结点这棵树才是完原创 2016-12-01 17:06:51 · 3525 阅读 · 0 评论 -
二叉树实现及基本操作
什么是二叉树在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”和“右子树”,左子树和右子树同时也是二叉树。二叉树的子树有左右之分,并且次序不能任意颠倒。原创 2017-07-22 10:49:14 · 710 阅读 · 0 评论 -
排序合集
排序算法大体可分为两种: 一种是比较排序,时间复杂度O(nlogn) ~ O(n^2),主要有:冒泡排序,选择排序,插入排序,归并排序,堆排序,快速排序等。 另一种是非比较排序,时间复杂度可以达到O(n),主要有:计数排序,基数排序,桶排序等。 排序算法的稳定性:保证排序前后两个相等的数的相对顺序不变。冒泡排序它重复地走访过要排序的元素,依次比较相邻两个元素,如果他们的原创 2017-08-06 16:53:38 · 543 阅读 · 0 评论