我目前有一个简单的数据库程序,它从文本文件中读取关键字并将它们存储在双向链表中(如果需要,以后再读取值)。目前,我在名单上进行了顺序搜索,但是这显然很慢。我希望有另一种方式去做。我正在阅读二叉树(特别是红黑树),但我不太了解他们,并希望我可以从stackoverflow hivemind闪光的东西:)我想我的问题是,什么是最快的方式在双向链表中进行搜索?快速搜索双向链表
编辑:忘了说,列表排序。不知道这是否会改变任何事情。另外,我只读密钥的原因是最大长度是1024 * 32字节,我觉得它太大了。请注意,这是用于分配的,因此“典型使用场景”不适用。教授们可能会对这件事情进行压力测试,我不希望成为那些庞大的块。
二叉树和链表是不同的数据结构(列表是树的退化形式)。所以你必须考虑你是否愿意改变结构。 – 2010-10-13 04:02:03
请注意两次读取文本文件的性能成本;读密钥时读取和保存值可能会更好。文件是* s * l * o * w *并且内存通常很便宜。 – 2010-10-13 04:05:38
快速解决方法是,使用散列表来存储列表节点的指针和密钥:-) – yadab 2010-10-13 04:08:08