一个关于链式存储和顺序存储的问题
来源:1-3 在学习算法和数据结构的具体知识前,你可能想读一读这两篇文章
那红尘
2020-04-18
底层用数组实现的就一定是顺序存储吗?用链表/树结构实现的都是链式存储吗?
在java中的哈希表是一个treemap的数组,在哈希冲突达到一定时,链表会进化成红黑树,而且哈希表的key是散列在数组中的,并不连续,那哈希表到底是顺序存储还是链式存储呢?
写回答
1回答
-
1
是的。数组叫顺序存储;链表,和基于 node 的树结构都是链式存储。
注意,这里我说基于 node 的树结构,因为树结构也可以顺序存储。比如这个课程中介绍的堆,本质是树,但是因为是完全树,所以我们可以使用数组表示这棵树;再比如这个课程中介绍的并查集,也是一个树结构,但是,我们也使用数组就表示了这个结构。
2
这个 treemap 的数组是顺序存储,每个数组中的元素其实是一个地址。这个地址指向了一个链表或者红黑树,相应的每个链表或者红黑树是链式存储。
继续加油!:)
10
相似问题