红黑树与关联数组

Python021

红黑树与关联数组,第1张

关联数组就是一个<key-value>对, 可以根据key快速查找/删除/插入/

前提是key在map中是唯一的不重复的, 对重复的key进行插入是不可行的, key可以是一个递增的值以避免重复

红黑树是一个自动平衡的二叉查找树, C++中STL::map就是使用这种机制实现的

红黑树都实现了 剩下的就很简单了

用C实现关联数组, 唯一的难度就是key和value类型的问题了, 在C语言中必须指定key和value的类型

C++中有模板的概念, 可以对key和value指定任意的类型 我也在头疼这个问题呢 哈哈哈

希望帮到你

1、首先,需要定义红黑树的节点这样的结构。

2、定义结构的顺序。

3、然后,就能在这里定义的根节点的结构体。

4、此时,可以暂时这棵红黑树的根命名为rb_root。

5、这时,利用刚刚定义的红黑树节点定义新节点。

6、最后,我们便可以为其重新命名为RBRoot即可。

数据结构我认为主要有三个方面。

1:抽象解释。

首先根据某个结构,利用自然语言进行描述,然后才能体现到代码上,如果你抽象解释看不懂,说明你的的数学知识不牢固,可以复习高中数学必修3中讲程序的那一节。

2:流程图。

根据自然语言的描述,把他体现在流程图上,注意流程图是学习数据结构的关键,数据结构不难,但很烦,他需要推理,往往一种情况又分另一种,红黑树就是一个例子。初期学习链表什么的较简单,但也不能忽略基础。

3:代码实现

有了流程图就万事具备了吗,NO。代码实现是一个大头,因为抽象,所以忽略了细节,往往这些细节能让你很头疼,比如选用什么数据类型,参数是引用,指针,常量等等?所以这里体现了你的代码操纵能力。