数据结构(data structure)是计算机中储存、组织数据的方式。
数据结构是一种具有逻辑关系,在计算机中应用某种储存结构,并且封装了相应操作的数据元素结合。它包含了三方面的内容:逻辑关系、储存关系、操作。
不同种类的数据结构适合用于不同种类的应用,而部分甚至专门用于特定的作业任务。例如,计算机网络依赖于路由表运作,B树高度适用于数据库的封装。
为什么要学习数据结构和算法
随着应用程序变得越来越复杂和数据越来越丰富,几百万、几十亿甚至几百亿的数据就会出现,
而对这么大的数据进行搜索、插入或者排序等的操作越来越慢、数据结构就是用来解决这些问题的。
数据结构都有啥
- 栈(Stack):栈是一种特殊的线性表,他只能在一个表的一个固定端进行数据结点的插入和删除操作
- 队列(Queue):队列和栈相似,也是一种特殊的的线性表。和栈不同的是,队列只允许在表的一端进行插入操作,而在另一端进行删除操作。
- 数组(Array):数组是一种聚合数据类型,他是将具有相同类型的若干变量有序的组织在一起的集合。
- 链表(Linked List):链表是一种数据元素按照链式储存结构进行储存的数据结构,这种储存结构具有在物理上存在非连续的特定.
- 树(Tree):数是典型的非线性结构,他是包括,两个结点的有穷集合,K
- 图(Graph):图是另一种非线性数据结构。在图结构中,数据结点一般称为顶点,而边是顶点的有序偶对。
- 堆(Heap):堆是一种特殊的树形数据结构,一般讨论的堆都是二叉堆
- 散列表(Hash table):散列表源自于散列函数(Hash function),其思想是如果结构中存在关键词和T相等的记录,那么必定在F(T)的储存位置可以找到该记录,这样就可以不用进行比较操作而直接取得所查记录
常用算法
数据结构就是:按照一定的逻辑结构,把数据组织起来,并选择适当的储存表示方法把逻辑结构组织好的数据储存到计算机的储存器里。算法研究的目的就是:为了更有效的处理数据,提高数据运算的效率。数据的运算是定义在数据的逻辑结构上,但运算的具体实现要在储存结构上进行。
运算:
- 检索:检索就是在数据结构里查找满足一定条件的节点。一般是给定一个某字段的值,找具有该字段值的节点
- 插入:往数据结构中增加新的节点
- 删除:把指定的结点从数据结构中去掉
- 更新:改变指定节点的一个或多个字段的值
- 排序:把节点按某种指定的顺序重新排列。