链表、栈或队列都是线性结构,包含一个数据元素序列。而二叉树是一种层次结构。一颗二叉树要么为空,要么由一个数据元素(称为跟)和两颗独立的二叉树(称为左子树和右子树)。某个节点的左(右)子树的根节点称为该节点的左(右)孩子节点。两颗子树均为空的节点称为叶子节点。
搜索二叉树:其左子树任意节点的值都小于此节点的值,其右子树中任意节点的值都大于此节点的值。
完全二叉树:如果一颗二叉树除最后一层外都保证...
分类:
其他好文 时间:
2015-08-27 13:25:52
阅读次数:
201
题目链接:NYOJ 116 士兵杀敌
士兵杀敌(二)
时间限制:1000 ms | 内存限制:65535 KB
难度:5
描述
南将军手下有N个士兵,分别编号1到N,这些士兵的杀敌数都是已知的。
小工是南将军手下的军师,南将军经常想知道第m号到第n号士兵的总杀敌数,请你帮助小工来回答南将军吧。
南将军的某次询问之后士兵i可能又杀敌q人,之后南将军再询问的...
分类:
其他好文 时间:
2015-08-21 09:32:48
阅读次数:
166
HDU 1394题意:
给一个由0~n-1组成的序列,求出该序列的所有循环同构序列中的最小逆序对数目,逆序对的两个元素可以不相邻。
思路:这题据说可以直接暴力O(n2)O(n^2)可以水过。。
说一下线段树做法O(nlogn)O(n\log n):
以这个序列来说明:
1,9,2,3,0,8,5,7,4,61 ,9 ,2, 3, 0, 8, 5, 7 ,4 ,6我们先假设有一个长度为n元素...
分类:
其他好文 时间:
2015-08-18 06:35:18
阅读次数:
123
数据结构中有很多树的结构,其中包括二叉树、二叉搜索树、2-3树、红黑树等等。本文中对数据结构中常见的几种树的概念和用途进行了汇总,不求严格精准,但求简单易懂。
分类:
其他好文 时间:
2015-08-15 19:49:32
阅读次数:
285
本文纯属原创,转载请注明出处,谢谢。http://blog.csdn.net/zip_fan。
Description
Each year, fall in the North Central region is accompanied by the brilliant colors of the leaves on the trees, followed quickly by...
分类:
其他好文 时间:
2015-08-11 10:09:45
阅读次数:
129
1、什么是二叉搜索树
二叉搜索树(Binary Search Tree)是一棵有序的二叉树,所以我们也可以称它为二叉排序树(不知道二叉树的童鞋,先看看二叉树:传送门)。具有以下性质的二叉树我们称之为二叉搜索树:若它的左子树不为空,那么左子树上的所有值均小于它的根节点;若它的右子树不为空,那么右子树上所有值均大于它的根节点。它的左子树和右子树分别也为二叉搜索树。
2、二叉搜索树的结...
分类:
其他好文 时间:
2015-08-10 07:07:01
阅读次数:
126
对于线段树的讲解此篇不再赘述,下面列出线段树应用中最常用的几种操作的代码。(具体题目未贴出,仅供有一定基础者参考代码风格)
另外,注意多组输入要写scanf("%d%d",&n,&m)!=EOF,线段树的题肯定要用c语言的输入输出,要使用字符数组,不用字符串,输入字符的时候要加getchar()吞噬空行..
(1)单点增减,区间求和:
#include
#include
#include
#...
分类:
其他好文 时间:
2015-08-09 20:51:55
阅读次数:
158
二叉树数据结构声明:
struct TreeNode
{
int val;
TreeNode *left;
TreeNode *right;
};
1、递归求二叉树深度
int getDepth(TreeNode *root)
{
if (root == NULL)
{
return 0;
}
re...
分类:
其他好文 时间:
2015-08-09 08:24:11
阅读次数:
204
题目链接:点击进入
这道题就不能简单的套模板了,因为他是要判断给定的区间里有多少个值小于H。思路看完题后就有了,其实我们只要二分名次k,然后将得到的值与H进行比较就行了,这样就可以求出一个高度恰好小于H的名次作为答案了。但要注意一下,使用划分树求出的第k大值,其实是第k小值,开始就被被这一点坑了。代码如下:#include
#include
#include<c...
分类:
其他好文 时间:
2015-08-07 20:07:49
阅读次数:
91