我希望整理一个流程图,以确定哪些数据结构适合于给定的问题。数据结构列表包括:数组,链表(单/双),哈希(映射等),树(二进制,N路)和跳过列表。
选择列表的标准(从我的角度来看)是: 1)有界或无界 2)随机或顺序访问 3)主要操作(读,写,插入,删除) 4)表现 5)易于编码
例如,如果我知道确切数量的项目,那么通常我将使用数组。它们易于搜索(但不一定快速)且易于维护。
对于大量数据,我更喜欢在遍历时间使用树。
我有兴趣找出其他用于选择数据结构的流程图。
答案 0 :(得分:1)
有许多不同的方案需要考虑。这是一个棘手的问题,因为它可以根据复杂性或某些数据结构的功能来解释。例如,如果你有一个程序,排序是一个问题,BTree会很好,因为可以在树上使用BSearch。但是也可以在排序的数组上执行BSearch。所有数据结构都需要考虑二分法。很难考虑所有因素,因为理论上无限的方式可以使用数据结构。这绝对是一个案例的基础,提出一般流程图可能不是一个好主意,但那只是我。