Android 数据结构

Android 常用的数据结构有八种:数组(Array),栈(Stack),链表(Linked List),图(Graph),队列(Queue),树(Tree),堆(Heap),散列表(Hash);

下面是它们各个的优点/特点和缺点:

名称 分类 优点/特点 缺点
数组
  • 数值数组
  • 字符数组
  • 指针数组
  • 结构数组等
  • 查询快
  • 可通过索引快速存取
  • 增加和删除慢
  • 大小固定
  • 顺序栈
  • 链式栈
  • 后进先出的原则 (放盘子)
  • 存取其他项很慢
队列
  • 顺序队列
  • 循环队列
  • 先进先出的存取方式
  • 存取其他项很慢
链表
  • 单链表
  • 双向链表
  • 循环链表
  • 插入快
  • 删除快
  • 查找慢
  • 二叉树
  • 红-黑树
  • 查找,插入,删除快
  • 有且仅有一个根节点
  • 子树之间不可以有交集
  • 树的深度指的是树的有多少层
  • 一个节点的度指的是该节点下有多少个子节点
  • 二叉树指的是每个结点的度≤2的树
  • 遍历方式分为三种:前序遍历(根左右),中序遍历(左根右),后序遍历(左右根)
  • 算法复杂
  • 有向图
  • 无向图
  • 对现实世界建模
  • 算法慢且复杂
  • 最小堆
  • 最大堆
  • 插入删除快,对最大数据的项存取快
  • 堆是一颗完全二叉树
  • 所有父节点是否大于等于其子节点,是则是最大堆,否则反之
  • 对其他数据项存取很慢
散列表
  • 哈希表
  • 根据key-value来进行数据获取的存储数据方式
  • 便于插入,查找等操作
  • key以数组的方式存储在栈内存中,value以链表的方式存储在堆空间中
  • 不同的key通过哈希函数可能得到相同的结果,这时候就发生了哈希碰撞;
  • 删除慢,如果不知道关键字则存取很慢,对存储空间使用不充分

更多内容戳我&

猜你喜欢

转载自blog.csdn.net/wuqingsen1/article/details/82864588