树
sunshine_lyn
欢迎访问个人博客: https://www.elainelv.github.io/
展开
-
LeetCode面试题07. 重建二叉树
面试题07. 重建二叉树解题思路:通过前序遍历找根节点,找到根节点后,再中序遍历中找当前根节点,找到后,左边的节点是当前根节点的左子树中的节点,右边的节点是当前根节点右子树的节点。递归建树。例如:代码:/** * Definition for a binary tree node. * struct TreeNode { * int val; * ...原创 2020-03-16 10:39:11 · 356 阅读 · 0 评论 -
LeetCode 第178场周赛
1.有多少小于当前数字的数字/** * Note: The returned array must be malloced, assume caller calls free(). */int* smallerNumbersThanCurrent(int* nums, int numsSize, int* returnSize){ int i,j; int *tmp=(...原创 2020-03-02 20:55:06 · 359 阅读 · 0 评论 -
LeetCode 第177场周赛
1.日期之间隔几天【思路】计算两个日期和1970-1-1之间相隔的天数,然后相减即可。需要注意闰年闰月的判断。int getday(int *d1){ int month[12]={31,28,31,30,31,30,31,31,30,31,30,31}; int day1=0,i; for(i=1970;i<d1[0];i++){ if(...原创 2020-02-26 13:33:17 · 306 阅读 · 0 评论 -
快速了解B+树的插入、删除操作
B+树非常的复杂,这里不进行详细的讲解,只对基本的插入删除操作进行说明。在B+树中,所有记录节点都是按键值的大小顺序存放在同一层的叶节点中,各叶节点用指针连接。因此在进行插入删除操作时,要进行调整,维持其平衡性。我们先来看一个B+树,其高度为2,每页可存放4条记录,扇出(fan out)为5,可以理解成5阶多叉树。可以看出,所有记录都在叶节点中,并且是顺序存放的,如果我们从最左边的叶节点开...转载 2018-09-17 19:34:19 · 41775 阅读 · 5 评论 -
路径打印(建树,DFS)
题目描述给你一串路径,譬如: a\b\c a\d\e b\cst d\ 你把这些路径中蕴含的目录结构给画出来,子目录直接列在父目录下面,并比父目录向右缩一格,就像这样: a b c d e b cst d 同一级的需要按字母顺序排列,不能乱。输入描述: 每个测试案例第一行为一个正整数n(n<=10)表示有n个路径,当n为0时,测试结束,接下来有n行,每行有...转载 2018-03-17 14:02:38 · 606 阅读 · 0 评论 -
二叉搜索树
题目描述判断两序列是否为同一二叉搜索树序列输入描述:开始一个数n,(1<=n<=20) 表示有n个需要判断,n= 0 的时候输入结束。接下去一行是一个序列,序列长度小于10,包含(0~9)的数字,没有重复数字,根据这个序列可以构造出一颗二叉搜索树。接下去的n行有n个序列,每个序列格式跟第一个序列一样,请判断这两个序列是否能组成同一颗二叉搜索树。输出描述:如果序列相同则输出YES,否...转载 2018-03-16 19:09:35 · 109 阅读 · 0 评论 -
有关二叉排序树详解
转载自http://blog.csdn.net/ns_code/article/details/19823463二叉排序树简介 二叉排序树(Binary Sort Tree,简称BST),又称二叉查找树,是红黑树、AVL树等的基础。它或是一棵空树,或者是具有下列性质的一棵二叉树: 1、若它的左子树不空,则左子树上所有节点的值均小于它的根节点的值; 2、若它的右子树不空,则右子树上所...转载 2018-03-16 18:34:59 · 615 阅读 · 0 评论 -
二叉排序树
题目描述二叉排序树,也称为二叉查找树。可以是一颗空树,也可以是一颗具有如下特性的非空二叉树: 1. 若左子树非空,则左子树上所有节点关键字值均不大于根节点的关键字值; 2. 若右子树非空,则右子树上所有节点关键字值均不小于根节点的关键字值; 3. 左、右子树本身也是一颗二叉排序树。 现在给你N个关键字值各不相同的节点,要求你按顺序插入一个初始为空树的二叉排序树中,每次插入后成功后,求相应的父亲节点...转载 2018-03-16 18:21:38 · 209 阅读 · 0 评论 -
二叉排序树
题目描述输入一系列整数,建立二叉排序数,并进行前序,中序,后序遍历。输入描述:输入第一行包括一个整数n(1<=n<=100)。接下来的一行包括n个整数。输出描述:可能有多组测试数据,对于每组数据,将题目所给数据建立一个二叉排序树,并对二叉排序树进行前序、中序和后序遍历。每种遍历结果输出一行。每行最后一个数据之后有一个空格。输入中可能有重复元素,但是输出的二叉树遍历序列中重复元素...原创 2018-03-16 15:29:27 · 180 阅读 · 0 评论 -
二叉树遍历
题目描述二叉树的前序、中序、后序遍历的定义: 前序遍历:对任一子树,先访问跟,然后遍历其左子树,最后遍历其右子树; 中序遍历:对任一子树,先遍历其左子树,然后访问根,最后遍历其右子树; 后序遍历:对任一子树,先遍历其左子树,然后遍历其右子树,最后访问根。 给定一棵二叉树的前序遍历和中序遍历,求其后序遍历(提示:给定前序遍历与中序遍历能够唯一确定后序遍历)。输入描述:两个字符串,其长度n均小于等于2...原创 2018-03-16 15:10:09 · 283 阅读 · 0 评论 -
2010北邮机试 哈夫曼树
题目描述哈夫曼树,第一行输入一个数n,表示叶结点的个数。需要用这些叶结点生成哈夫曼树,根据哈夫曼树的概念,这些结点有权值,即weight,题目需要输出所有结点的值与权值的乘积之和。输入描述:输入有多组数据。每组第一行输入一个数n,接着输入n个叶节点(叶节点权值不超过100,2<=n<=1000)。输出描述:输出权值。示例1输入5 1 2 2 5 9输出37思路:注意题目求带权路...原创 2018-03-16 13:37:16 · 893 阅读 · 0 评论 -
HDU 4347 The Closest M Points(KD树)
The Closest M PointsTime Limit: 16000/8000 MS (Java/Others) Memory Limit: 98304/98304 K (Java/Others)Total Submission(s): 6302 Accepted Submission(s): 1971Problem DescriptionThe course of Softwa...转载 2018-03-10 11:25:35 · 287 阅读 · 0 评论 -
二叉树
题目描述 1 / \ 2 3 / \ / \ 4 5 6 7 /\ /\ /\ /\如上图所示,由正整数 1, 2, 3, ...组成了一棵无限大的二叉树。从某一个结点到根结点(编号是1的结点)都有一条唯一的路径,比如从5到根结点的路径是(5, 2, 1),从4到根结点的路径是(4, 2, 1),从根结点1到根结点的路径上只包含一个结点1,因此路径就是(1...原创 2018-03-16 10:24:47 · 278 阅读 · 0 评论