hash table 和 red black tree有什么不同点

来源:百度知道 编辑:UC知道 时间:2024/07/04 02:09:18
主要就insert,search,delete这几个办法找出两者不同点,非常感谢,我会加分的。

RB-Tree是平衡搜索二叉树,Hastable则是一个类似多级链表的结构
Insert:RB tree是更具排序特性先查找元素该插入的节点位置插入,再做相应的旋转操作保持树的平衡以及排序特性。HashTable则先查找插入的“桶”节点,再完成插入。
Search:RB tree是二叉搜索,HashTable则是根据线性探测
Delete:RB-Tree删除后要保持树的平衡以及排序特性要进行树的旋转,HashTable只要删除节点即可。
这里只是我个人粗略的理解,具体你可以看下STL源代码怎么实现的

hash table就是哈希表

一般的线性表、树中,记录在结构中的相对位置是随机的即和记录的关键字之间不存在确定的关系,在结构中查找记录时需进行一系列和关键字的比较。这一类查找方法建立在“比较”的基础上,查找的效率与比较次数密切相关。理想的情况是能直接找到需要的记录,因此必须在记录的存储位置和它的关键字之间建立一确定的对应关系f,使每个关键字和结构中一个唯一的存储位置相对应。因而查找时,只需根据这个对应关系f找到给定值K的像f(K)。若结构中存在关键字和K相等的记录,则必定在f(K)的存储位置上,由此不需要进行比较便可直接取得所查记录。在此,称这个对应关系f为哈希函数,按这个思想建立的表为哈希表(又称为杂凑法或散列表)。

http://baike.baidu.com/view/329976.htm

red black tree就是红黑树

红黑树是一种自平衡二叉查找树,是在计算机科学中用到的一种数据结构,典型的用途是实现关联数组。它是在1972年由Rudolf Bayer发明的,他称之为"对称二叉B树",它现代的名字是在 Leo J. Guibas 和 Robert Sedgewick 于1978年写的一篇论文中获得的。它是复杂的,但它的操作有着良好的最坏情况运行时间,并且在实践中是高效的: 它可以在O(log n