Android开发程序员Android技术知识

那些年,我们被问到的数据结构

2019-05-10  本文已影响21人  Android架构

在面试的时候经常会被问到关于数据结构中的概念以及算法实现。既然要成为一名程序员,那么掌握数据结构也是无可厚非的,毕竟有着很多的应用与实现。所以自己就整理了一些关于数据结构应该掌握的概念和算法,以及面试常问的问题(实现语言用的Java),有些算法可能手写不出,但思路一定要会,自己也是菜鸟一枚,也在学习。

线性表

线性表的相关概念,对于其中的链表,栈,队列,后面展开介绍。

栈和队

  1. 栈的创建
  2. 队列的创建
  3. 两个栈实现一个队列
  4. 两个队列实现一个栈
  5. 设计含最小函数min()的栈,要求min、push、pop、的时间复杂度都是O(1)
  6. 判断栈的push和pop序列是否一致

链表

  1. 单链表的创建和遍历
  2. 求单链表中节点的个数
  3. 查找单链表中的倒数第k个结点(剑指offer,题15)
  4. 查找单链表中的中间结点
  5. 合并两个有序的单链表,合并之后的链表依然有序【出现频率高】(剑指offer,题17)
  6. 单链表的反转【出现频率最高】(剑指offer,题16)
  7. 从尾到头打印单链表(剑指offer,题5)
  8. 判断单链表是否有环
  9. 取出有环链表中,环的长度
  10. 单链表中,取出环的起始点(剑指offer,题56)。本题需利用上面的第8题和第9题。
  11. 判断两个单链表相交的第一个交点(剑指offer,题37)

排序

1.冒泡排序
2.插入排序
3.选择排序
4.希尔排序
5.快速排序
6.归并排序
7.堆排序

  1. 二叉查找树
  2. 树的深度遍历与广度遍历
  3. 平衡树
  4. 红黑树
  5. 哈夫曼树
  6. 并查集
  7. B树系列

  1. 图的基础概念
  2. 深度遍历与广度遍历
  3. 单源最短路径
  4. 多源最短路径
  5. 最小生成树
  6. 拓扑排序

散列查找

1.散列表的概念
2.散列表的一些算法应用

散列表可以和Java中集合HashMap等对照学习。

推荐书籍:《大话数据结构》

自己是从事了七年开发的Android工程师,不少人私下问我,2019年Android进阶该怎么学,方法有没有?

没错,年初我花了一个多月的时间整理出来的学习资料,希望能帮助那些想进阶提升Android开发,却又不知道怎么进阶学习的朋友。【包括高级UI、性能优化、架构师课程、NDK、Kotlin、混合式开发(ReactNative+Weex)、Flutter等架构技术资料】,希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习。

资料获取方式:加入Android架构交流QQ群聊:513088520 ,进群即领取资料!!!

点击链接加入群聊【Android移动架构总群】:加入群聊

资料大全
上一篇 下一篇

猜你喜欢

热点阅读