一棵AVL树是其每个节点的左子树和右子树的高度最多差1的二叉查找树。实际高度只比logN多以一点,和普通二叉查找树相比,平衡二叉搜索树一般而言搜寻时间可节省25%左右(STL源码剖析P203)。
只有那些从插入点到根节点的路径上的节点的平衡可能被改变,因为只有这些节点的子树可能发生变化。
把需要重新平衡的节点称为a(左右子树高度差大于1)。注意,确定这个节点很重要,否则无法确定...
分类:
其他好文 时间:
2014-05-10 09:57:21
阅读次数:
406
看似dp,但是数据太大,不过n很小,可以暴力解决。
由于30个数组合情况太多,所以可以分成两边,首先预处理前n/2个数能组成哪些数,并且最小消耗多少砝码,map保存下来。
然后处理右边能组合成什么数,相加就够了。
注意这样会漏掉两种情况,就是光一边就能组成最终答案的(因为map没有存数也是0),特殊处理一下就行。
#include
#include
#include
#inc...
分类:
其他好文 时间:
2014-05-10 09:16:39
阅读次数:
245
set、map、multiset、multimap四种关联式容器的内部都是由红黑树实现的。在STL中红黑树是一个不给外界使用的独立容器。既然是容器,那么就会分配内存空间(节点),内部也会存在迭代器。关于红黑树的一些性质,可以参考“数据结构”中的笔记,这里只记录STL中的红黑树是如何实现的。
和slist一样,红黑树的节点和迭代器均采用了双层结构:
节点:__rb_tree_no...
分类:
其他好文 时间:
2014-05-07 15:55:28
阅读次数:
487
条款01:主要是告诉大家要将C++看作由C,C with classes、templates
C++ 、STL四个次语言组成的联邦,并极其简略的介绍了每种次语言的特点。
分类:
编程语言 时间:
2014-05-07 13:36:32
阅读次数:
265
binary_search 这个函数的返回值是布尔型,也就是最简单的找到了就为真,没找到就是假。
传入参数有三个,数据集合的左端点,数据集合的右端点,查找的值。 注意这些左端点右端点是要求左开右闭原则的,就是和数学上的左开右闭区间[a,
b)一样,右端点是个不会被查阅的值。 一般来说写法类似: bo...
分类:
编程语言 时间:
2014-05-07 12:47:43
阅读次数:
436
G++ 2.91.57,cygnus\cygwin-b20\include\g++\stl_stack.h 完整列表
/*
*
* Copyright (c) 1994
* Hewlett-Packard Company
*
* Permission to use, copy, modify, distribute and sell this software
* and its do...
分类:
其他好文 时间:
2014-05-07 07:40:07
阅读次数:
322
来源:点击打开链接
可以模拟过,不过练习这个题的目的是学习stl中的bitset,一个神奇的二进制容器.
和vector/MAP等容器一样,bitset具备stl库函数的几乎所有特性,同时加入了一些自己的东西,对二进制处理十分便利,尤其是在找零和找一的方面.
ps:遍历的话,bitset默认是从后往前遍历的.所以不要自己再倒过来了.
一些库函数及用法的实例:
典型的bitset初...
分类:
其他好文 时间:
2014-05-07 04:36:52
阅读次数:
331
一个依靠STL vector的接口进行申请和回收管理的内存池类( c++ 封装)...
分类:
编程语言 时间:
2014-05-07 04:02:32
阅读次数:
381
来源:http://poj.org/problem?id=2121
Inglish-Number Translator
Time Limit: 1000MS
Memory Limit: 65536K
Total Submissions: 4475
Accepted: 1747
Description
In th...
分类:
其他好文 时间:
2014-05-06 23:29:32
阅读次数:
419
G++ 2.91.57,cygnus\cygwin-b20\include\g++\stl_queue.h 完整列表
/*
*
* Copyright (c) 1994
* Hewlett-Packard Company
*
* Permission to use, copy, modify, distribute and sell this software
* and its document...
分类:
其他好文 时间:
2014-05-06 22:22:55
阅读次数:
402