iOS精品文章面试题库ios进阶

iOS面试题12-数据结构算法篇

2018-03-26  本文已影响2073人  八级大狂风AM

2018 iOS面试题系列

1.集合结构 线性结构 树形结构 图形结构

        这里没有图啊,大家可以抽象一下。

2. 数据结构的存储

        数据结构的存储一般常用的有两种 顺序存储结构 和 链式存储结构

        发挥想象力啊。 举个列子。数组。1-2-3-4-5-6-7-8-9-10。这个就是一个顺序存储结构 ,存储是按顺序的 举例说明啊。 栈。做开发的都熟悉。栈是先进后出 ,后进先出的形式 对不对 ?!他的你可以这样理解

        hello world 在栈里面从栈底到栈顶的逻辑依次为 h-e-l-l-o-w-o-r-l-d 这就是顺序存储 再比如 队列 ,队列是先进先出的对吧,从头到尾 h-e-l-l-o-w-o-r-l-d 就是这样排对的

        再次发挥想象力 这个稍微复杂一点 这个图片我一直弄好 ,回头找美工问问,再贴上 例如 还是一个数组

        1-2-3-4-5-6-7-8-9-10 链式存储就不一样了 1(地址)-2(地址)-7(地址)-4(地址)-5(地址)-9(地址)-8(地址)-3(地址)-6(地址)-10(地址)。每个数字后面跟着一个地址 而且存储形式不再是顺序 ,也就说顺序乱了,1(地址) 1后面跟着的这个地址指向的是2,2后面的地址指向的是3,3后面的地址指向是谁你应该清楚了吧。他执行的时候是 1(地址)-2(地址)-3(地址)-4(地址)-5(地址)-6(地址)-7(地址)-8(地址)-9(地址)-10(地址),但是存储的时候就是完全随机的。明白了?!

3. 单向链表\双向链表\循环链表

        还是举例子。理解最重要。不要去死记硬背 哪些什么。定义啊。逻辑啊。理解才是最重要滴

数组和链表区别:
数组:数组元素在内存上连续存放,可以通过下标查找元素;插入、删除需要移动大量元素,比较适用于元素很少变化的情况
链表:链表中的元素在内存中不是顺序存储的,查找慢,插入、删除只需要对元素指针重新赋值,效率高

4.二叉树/平衡二叉树

二叉树有五种表现形式

  1. 空的树(没有节点)可以理解为什么都没 像空气一样

  2. 只有根节点。 (理解一个人只有一个头 其他的什么都没,说的有点恐怖)

  3. 只有左子树 (一个头 一个左手 感觉越来越写不下去了)

  4. 只有右子树

  5. 左右子树都有

       二叉树可以转换成森林 树也可以转换成二叉树。这里就不介绍了 你做项目绝对用不到

       数据结构大致介绍这么多吧。理解为主, 别死记,死记没什么用

5.算法

从现在开始介绍算法啊

冒泡排序 和选择排序.png 插入排序.png 希尔排序 .png 二分查找.png 快排.png

       二叉树这个比较麻烦 还有平衡二叉树 有点绕 如果不懂二叉树这一块 你是百分之二百看不懂的

  1. 如果左子树非空,那么左子树所有节点的值均小于它的根节点

  2. 如果右子树非空,那么右子树所有节点的值均大于它的根节点

  3. 左右子树也分别为二叉排序树

原文链接

上一篇下一篇

猜你喜欢

热点阅读