【发布时间】:2011-02-03 11:59:51
【问题描述】:
我有这个分层的数据,所以我将它存储在树中。我想为其提供搜索功能。我必须为此创建一个二叉树吗?我不想两次拥有数千个节点。难道没有一种树可以让我按照给定的顺序存储数据,还可以像二叉树一样高效搜索设置,而且开销很小?
任何其他数据结构建议也将不胜感激。
谢谢。
编辑:
一些细节:这棵树是一个非常简单的“手工”树,可以认为是非常非常基本的。问题是,有成千上万的名称和其他文本将作为我想要搜索的数据输入,但我不想以传统方式遍历节点,需要像二进制搜索这样的快速搜索。
另外,重要的是,用户必须能够看到他输入的结构,而不是排序的结构。所以我不能保持排序以支持搜索。这就是为什么我说我不想拥有数千个节点两次。
【问题讨论】:
-
为什么你认为你需要两次节点?当你说“我把它放在树上”时——什么样的树?是什么阻止您直接搜索?基本上,需要更多细节。
-
它不一定是二叉树。它必须是search tree。二叉树本身不能提供快速搜索。
-
@Paul 我在问题中添加了一些细节。
-
@Martinho Fernandes 好的,当我说二叉树时,我的意思是搜索树。谢谢(你的)信息。我是数据结构的新手。
标签: c++ data-structures tree