对数据结构的建议!

时间:2010-06-01 05:15:24

标签: c data-structures

我对数据结构有以下要求:

  1. 借助键直接访问元素(Key将是一个整数,范围也与整数范围相同)
  2. 避免以块的形式分配内存(为数据结构分配包含数据的连续内存)
  3. 应该能够动态增长数据结构大小
  4. 您建议使用哪种数据结构?

    方向上的任何指示也会有所帮助。

2 个答案:

答案 0 :(得分:2)

对我来说听起来像hash table(又名字典)

答案 1 :(得分:0)

1)稀疏阵列
2,3)堆

您基本上必须实现共享单个大缓冲区的堆和稀疏数组。通常,存储在稀疏数组中的值是指针。在您的情况下,指针将相对于堆的基数,也称为偏移量。堆应该在大缓冲区中的稀疏数组之前,以便调整堆的大小不会改变偏移量。

通常这样的事情是作为展平步骤完成的。换句话说,正常的散列表或稀疏数组与系统管理的指针一起使用,直到它作为一个连续的块全部需要为止。此时,所有内容都被打包成其他格式,稍后再扩展。