关联式容器,内部结构是一个平衡二叉树,每个元素都有一个键值和一个实值,比如map, set, hashtable, hash_set 算法有排序,复制等,以及各个容器特定的算法;迭代器是STL的精髓,迭代器提供了一种方法,使得它能够按照顺序访问某个容器所含的各个元素,但无需暴露该容器的内部结构,它将容器和算法分开,让二者独立设计。
关联式容器,内部结构基本上是一颗平衡二叉树。所谓关联,指每个元素都有一个键值和一个实值,元素按照一定的规则存放。如:RB-tree、set、map、multiset、multimap、hashtable、hash_set、hash_map、hash_multiset、hash_multimap。 下面各选取一个作为说明: vector:它是一个动态分配存储空间的容器。区别于c++中的array,...
序列式容器:强调值的排序,序列式容器中的每个元素均有固定的位置 关联式容器:二叉树结构,各元素之间没有严格的物理上的顺序关系 算法:问题之解法也有限的步骤,解决逻辑或数学上的问题,这门学科叫算法算法分为:质变算法和非质变算法质变算法:是指运算过程中会更改区间内的元素的内容。例如拷贝,替换,删除等等非质变算...
二叉树 自平衡二叉搜索树-红黑树,你没有看错,每个节点是有颜色的,要么是红色要么是黑色。二分查找...
今天推荐一个函数库glib 注意不是glibc https://developer.gnome.org/glib/ 一直在抱怨,标准C中为什么没有类似于STL的标准容器,让全世界的程序员在数以万次的重复实现它们...glib提供了动态数组、单/双向链表、哈希表、多叉树、平衡二叉树、字符串等常用容器,完全是面向对象设计的,实现得非常精致。 你开发过跨硬...
序列式容器,其中的元素不一定有序,但都可以被排序。如:vector、list、deque、stack、queue、heap、priority_queue、slist; 关联式容器,内部结构基本上是一颗平衡二叉树。所谓关联,指每个元素都有一个键值和一个实值,元素按照一定的规则存放。如:RB-tree、set、map、multiset、multimap、hashtable、hash_set、hash_ma...
除树叶外,每个节点都有两个儿子的根树称为完全二叉树,也就是说,不是最矮的,完美二叉树是说的是最矮的然后有2^(k+1)-1的那种树,深度说的是边数,是节点数减1,完全二叉树数据结构上与离散数学上讲的不一样,数据结构讲的是最矮的,完满二叉树才是每个节点都有两个儿子的树 ...
,树的基本操练(求叶子、copy树、树深度等),树的遍历非递归,树的线索化,最优二叉树(霍夫曼树)...
二叉树具有以下几种特征 性质1:二叉树第i层上的结点数目最多为 2的(i-1)次方个节点(i≥1)。 性质2:深度为k的二叉树至多有2的k次方-1个结点(k≥1)。 性质3:包含n个结点的二叉树的高度至少为log2 (n+1)。 性质4:在任意一棵二叉树中,若终端结点的个数为n0,度为2的结点数为n2,则n0=n2+1。4...