数据结构基础

1、数组

        int[] a = new int[10];

        优点:下标访问速度快

                   遍历数组速度快

        缺点:数组固定大小后,不能扩容

                   增删操作效率慢

                   只能存储一种数据类型

2、链表

        Linked

        优点:不需要初始化容量,可随意扩容。

                   增删速度快,修改节点指向即可。

        缺点:指定位置删除,需要遍历到当前位置,才能执行删除。

                   查找元素效率低,需全链表遍历。

                   使用指针域,空间占用大。

        单向链表:当前节点指向下一个节点,循环直到无下一个节点。

        双向链表:当前节点指向下一个节点、下一个节点指向上一个节点;循环直到无下一个节点。双向链表占用的空间更大,对于单向链表来说,实现了以空间换时间的作用。

        环单向链表:最后一个节点的下一个节点指向第一个节点。

        环双向链表:最后一个节点的下一个节点指向第一个节点;第一个节点的上一个节点指向最后一个节点。

3、跳表

        链表的升级用法,redis的有序集合就是用跳表实现的。

        变相实现二分查询。

        用分层来实现点定位。总层数(n+1/2)。相隔一个点分一层,当前层超过三个数据则新建一层。

4、树

        二叉树:顶级节点有左右子节点。

        平衡二叉树:左右树的高度一致。

        完全二叉树:节点从左往右依次加满,则为完全二叉树。

        满二叉树:平衡二叉树,也是完全二叉树,最底层子节点必须全满。

        红黑树

        B+树

        B树

5、栈

        后进先出,可用于倒序输出。

6、队列

        先进先出,可用于正序输出。

7、散列表

8、堆

        用于topK的排序算法。

        大顶堆

        小顶堆

9、图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值