数据结构 - 何时使用哪些?

时间:2010-12-09 15:31:48

标签: data-structures

我希望整理一个流程图,以确定哪些数据结构适合于给定的问题。数据结构列表包括:数组,链表(单/双),哈希(映射等),树(二进制,N路)和跳过列表。

选择列表的标准(从我的角度来看)是:         1)有界或无界         2)随机或顺序访问         3)主要操作(读,写,插入,删除)         4)表现         5)易于编码

例如,如果我知道确切数量的项目,那么通常我将使用数组。它们易于搜索(但不一定快速)且易于维护。

对于大量数据,我更喜欢在遍历时间使用树。

我有兴趣找出其他用于选择数据结构的流程图。

1 个答案:

答案 0 :(得分:1)

有许多不同的方案需要考虑。这是一个棘手的问题,因为它可以根据复杂性或某些数据结构的功能来解释。例如,如果你有一个程序,排序是一个问题,BTree会很好,因为可以在树上使用BSearch。但是也可以在排序的数组上执行BSearch。所有数据结构都需要考虑二分法。很难考虑所有因素,因为理论上无限的方式可以使用数据结构。这绝对是一个案例的基础,提出一般流程图可能不是一个好主意,但那只是我。