数据结构(英语:data structure)是计算机中存储、组织数据的方式。它不仅存储数据,还支持访问和处理数据的操作。
算法是为求解一个问题需要遵循的、被清楚指定的简单指令的集合。
不同种类的数据结构适合于不同种类的应用,而部分甚至专门用于特定的作业任务。例如,计算机网络依赖于路由表运作,b 树高度适用于数据库的封装。
算法是为求解一个问题需要遵循的、被清楚指定的简单指令的集合。
不同种类的数据结构适合于不同种类的应用,而部分甚至专门用于特定的作业任务。例如,计算机网络依赖于路由表运作,b 树高度适用于数据库的封装。
数据结构指的是“一组数据的存储结构”,算法指的是“操作数据的一组方法”。
数据结构是为算法服务的,算法是要作用再特定的数据结构上的。
常用的数据结构
- 栈(stack):栈是一种特殊的线性表,它只能在一个表的一个固定端进行数据结点的插入和删除操作。
- 队列(queue):队列和栈类似,也是一种特殊的线性表。和栈不同的是,队列只允许在表的一端进行插入操作,而在另一端进行删除操作。
- 数组(array):数组是一种聚合数据类型,它是将具有相同类型的若干变量有序地组织在一起的集合。
- 链表(linked list):链表是一种数据元素按照链式存储结构进行存储的数据结构,这种存储结构具有在物理上存在非连续的特点。
- 树(tree):树是典型的非线性结构,它是包括,2 个结点的有穷集合 k。
- 图(graph):图是另一种非线性数据结构。在图结构中,数据结点一般称为顶点,而边是顶点的有序偶对。
- 堆(heap):堆是一种特殊的树形数据结构,一般讨论的堆都是二叉堆。
- 散列表(hash table):散列表源自于散列函数(hash function),其思想是如果在结构中存在关键字和t相等的记录,那么必定在f(t)的存储位置可以找到该记录,这样就可以不用进行比较操作而直接取得所查记录。
常用的算法
- 递归
- 排序
- 二分查找
- 搜索
- 哈希算法
- 贪心算法
- 分治算法
- 回溯算法
- 动态规划
- 字符串匹配算法