队列是数据结构中??重要的?种类型,它?持 FIFO,尾部添加、头部删除(先进队列的元素先出队列),跟我们?活中的排队类似。
Java 集合中的 Queue 继承? Collection 接? ,Deque, LinkedList, PriorityQueue,BlockingQueue 等类都实现了它。 Queue ?来存放 等待处理元素 的集合,这种场景?般?于缓冲、
并发访问。 除了继承 Collection 接?的?些?法,Queue 还添加了额外的 添加、删除、查询操作。
Set 继承于 Collection 接?,是?个不允许出现重复元素,并且?序的集合,主要 HashSet 和TreeSet 两?实现类。
在判断重复元素的时候,HashSet 集合会调? hashCode()和 equal()?法来实现;TreeSet 集合会调?compareTo?法来实现。
补充:有序集合与?序集合说明
HashSet 和 TreeSet 底层数据结构
在 List 中,?户可以精确控制列表中每个元素的插?位置,另外?户可以通过整数索引(列表中的位置)访问元素,并搜索列表中的元素。 与 Set 不同,List 通常允许重复的元素。 另外 List 是有序集合? Set 是?序集合。
ArrayList 是?个数组队列,相当于动态数组。它由数组实现,随机访问效率?,随机插?、随机删除效率低。
LinkedList 是?个双向链表。它也可以被当作堆栈、队列或双端队列进?操作。LinkedList随机访问效率低,但随机插?、随机删除效率?。
Vector 是?量队列,和ArrayList?样,它也是?个动态数组,由数组实现。但是ArrayList是?线程安全的,?Vector是线程安全的。
Stack 是栈,它继承于Vector。它的特性是:先进后出(FILO, First In Last Out)。相关阅读:java数据结构与算法之栈(Stack)设计与实现
结点的层次(level):从0开始,如上图的层数是2;
兄弟(sibling):有同一个父节点的,如上E和F是兄弟,但是E和G不是兄弟节点。
数的深度(depth)或高度:最大层次数称为树的深度。如上:深度为2
结点的度(degree):拥有子树的数目称之为节点的度。如上:A和D的度是3;
每个结点的度不超过2;并且每个孩子还有左孩子和有孩子之分。
完全?叉树:叶节点只能出现在最下层和次下层,并且最下??层的结点都集中在该层最左边的若?位
置的?叉树。
?个?叉树,如果每?个层的结点数都达到最?值,则这个?叉树就是满?叉树。也就是说,如果?个?叉树的层数为K,且结点总数是(2^k) -1 ,则它就是满?叉树。
堆是具有以下性质的完全?叉树:每个结点的值都?于或等于其左右孩?结点的值,称为?顶堆;或者每个结点的值都?于或等于其左右孩?结点的值,称为?顶堆。
红?树特点:
原文:https://www.cnblogs.com/liufei2/p/14674161.html