掌握数据结构:构建高效算法的基础
发表时间: 2024-05-26 19:11
Java常用的数据结构
栈:先进后出(后进先出) First In Last Out(FILO)
队列:先进先出 First In First Out(FIFO)
数组:
增删慢:每次增删元素时需要创建新的数组,需要拷贝大量的数组元素。
查询快:可以直接根据索引获得对应的元素。
链表
增删快:每次增删元素不需要移动元素位置,只需要修改上一个元素记住下一个元素的地址值
查询慢:每次查询元素都需要从链表头或链表尾部开始遍历查询。
索引决定了是从链表头还是链表尾部开始查询
如果索引大于等于元素个数的一半,从链表尾部开始查询,否则从链表头开始查询
红黑树 ==> 树 ==> 二叉树
红黑树
二叉树:binary tree ,是每个结点不超过2的有序树(tree)
简单的理解,就是一种类似于我们生活中树的结构,只不过每个结点上都最多只能有两个子结点
二叉树是每个节点最多有两个子树的树结构。顶上的叫根结点,两边被称作“左子树”和“右子树”
我们要说的是二叉树的一种比较有意思的叫做红黑树,红黑树本身就是一颗二叉查找树,将节点插入后,该树仍然是一颗二叉查找树。也就意味着,树的键值仍然是有序的