数据结构的一些疑问

xiaofen8 2011-07-06 01:46:18
映射保存的数据是键值对,映射中的数据是按照键来排序的。集合就是保存着有序的数据,数据值本身就是键。
对于上面2句话的理解,是否映射和集合都是用散列表来存储数据的?可以的话用c语言列出个简单的例子说明什么是映射和集合

...全文
104 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaofen8 2011-07-06
  • 打赏
  • 举报
回复
楼上说的.net我就没接触过了
关联数组是否是一个逻辑上的数组,然后键值就是下标?
键值对可否用易懂的例子解释一下呢?
至善者善之敌 2011-07-06
  • 打赏
  • 举报
回复
Set映射:表示无序且元素不重复的集合,对应于Iesi.Collections.ISet及其泛型类型,不允许其中添加重复元素。
Bag映射:Bag是一个无序的集合,切允许重复的元素,但.Net中却未定义Bag类型或接口,因此NHibernate允许使用IList接口来模拟Bag映射,Bag映射可以通过配置文件指定如何对元素进行排序。
List映射:表示一个有序的集合,故要求数据表必须包含一列,用于记录List映射集合中的每个元素的唯一索引(另一列保存元素的值)。在.Net中,List映射同样对应IList接口。
Map映射:表示一个无序的键/值对集合,要求数据表必须包含一列,用于记录Map映射集合中的每个元素的唯一键(另一列保存元素的值)。在.Net中对应于IDictionary接口,Map映射可以通过配置文件指定如何对元素进行排序。
xiaofen8 2011-07-06
  • 打赏
  • 举报
回复
映射保存的数据是键值对,映射中的数据是按照键来排序的。集合就是保存着有序的数据,数据值本身就是键。
是否这样?
用一个指针数组,然后一个键对应一个数组下标,然后这个数组元素指向一颗二叉树?
ryfdizuo 2011-07-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xiaofen8 的回复:]
我不是学c++的,看的懂一点而已。都是基于二叉排序树存储?map和set都是建立在二叉树的基础上的?
[/Quote]
至少stl中的map和set是基于红黑树的。
xiaofen8 2011-07-06
  • 打赏
  • 举报
回复
我不是学c++的,看的懂一点而已。都是基于二叉排序树存储?map和set都是建立在二叉树的基础上的?
ryfdizuo 2011-07-06
  • 打赏
  • 举报
回复
不用举例子,看看C++ STL中的map和set即可。都是基于二叉排序树存储。

69,377

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧