本文首发于公众号《深度学习与Python》,欢迎关注
瑞士计算机科学家尼克劳斯沃斯于1976年写了一本书提出算法+数据结构=程序,40多年后,这个等式仍然成立。这就是为什么算法编程面试必问数据结构及其应用的问题。因此在算法学习的同时,数据结构也是不可忽视的内容,今天我们就开始了解基础的数据结构知识。
什么是数据结构?
简而言之,数据结构是一个以特定形式存储数据的容器。这种“形式”允许数据结构在某些操作中更加高效。
为什么我们需要数据结构?
由于数据结构用于以有组织的形式存储数据,并且由于数据是计算机科学中最重要的实体,因此数据结构的重要性是显而易见的。无论你解决什么问题,你都必须以某种方式处理数据 - 无论是员工的工资,股票价格,购物清单,还是简单的电话簿。根据不同的场景,数据需要以特定格式存储。我们有一些数据结构可以满足我们以不同格式存储数据的需求。
常用的数据结构
常用的数据结构包括数组、堆栈、队列、链表、树、图表和哈希表等等,下面我们就简要介绍一下:
数组
数组是最简单和最广泛使用的数据结构。其他数据结构(如堆栈和队列)都是从数组派生的。下例是一个大小为4的简单数组:
每个数据元素都会分配一个称为索引值,该值对应于该项目在数组中的位置。大多数语言将数组的起始索引定义为0。
数组主要有两种类型:一维数组
多维数组
数组的基本操作插入 - 在给定索引处插入元素
Get - 返回给定索引处的元素
删除 - 删除给定索引处的元素
大小 - 获取数组中元素的总数
常见的数组面试问题