前提是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。代码实现是一个大头,因为抽象,所以忽略了细节,往往这些细节能让你很头疼,比如选用什么数据类型,参数是引用,指针,常量等等?所以这里体现了你的代码操纵能力。