JAVA TreeSet 使用的基本(不是即时)支持数据结构是什么?
What's the basic (not immediate) backing data structure used by JAVA TreeSet?
所以 TreeSet 使用 TreeMap 作为支持数据结构(具有对应于键的虚拟值)& TreeMap 反过来使用红黑树,这是一个自平衡 BST。
现在这个红黑树用什么作为后备数据结构?是数组还是链表?
我的理解是它是一个链表,因为在 TreeSet 中,像 .first() 这样的操作 return 最小值而不是根并且它具有 O(1) 时间复杂度。
所以基本上它是一个链表以及一堆指针,用于链表的最小、最大、根等。我的理解正确吗?
既不是数组也不是链表。它是 Java 个对象的 树 ,与两者不同。
例如,看a linked list and a tree的图表之间的区别。它们根本不同。
你说的红黑树就是数据结构。它没有一个"backing data structure."
所以 TreeSet 使用 TreeMap 作为支持数据结构(具有对应于键的虚拟值)& TreeMap 反过来使用红黑树,这是一个自平衡 BST。
现在这个红黑树用什么作为后备数据结构?是数组还是链表?
我的理解是它是一个链表,因为在 TreeSet 中,像 .first() 这样的操作 return 最小值而不是根并且它具有 O(1) 时间复杂度。
所以基本上它是一个链表以及一堆指针,用于链表的最小、最大、根等。我的理解正确吗?
既不是数组也不是链表。它是 Java 个对象的 树 ,与两者不同。
例如,看a linked list and a tree的图表之间的区别。它们根本不同。
你说的红黑树就是数据结构。它没有一个"backing data structure."