数据的物理结构有 2 种,逻辑结构有 4 种,它们可以随意组合。例如,无关系的数据可以选择集中存放,也可以选择分散存放。针对具有不同物理结构和逻辑结构的数据,数据结构都会给出最恰当的存储方案。学习数据结构,实际上就是学习这些存储数据的方案。
1. 数据结构的物理结构和逻辑结构的组合存储方案:

注意,想彻底玩转图中罗列的这些存储方案也是不容易的,除了掌握各个存储方案本身,还要学会在各个存储方案中完成对数据的“增删改查”操作,以及用这些存储方案解决一些常见的实际问题(例如字符串的模式匹配、矩阵转置、最小生成树、最短路径等)。
2. 关于数据结构与算法的关系和区别
数据结构和算法是紧密相关的,学习数据结构的过程中,还要掌握一些常用的算法。
俗话说,程序 = 数据结构(解决存储数据和数据之间关系) + 算法(解决如何访问和处理数据问题)
1)数据结构中具体实现:
- 栈(Stack):栈是一种特殊的线性表,它只能在一个表的一个固定端进行数据结点的插入和删除操作。
- 队列(Queue):队列和栈类似,也是一种特殊的线性表。和栈不同的是,队列只允许在表的一端进行插入操作,而在另一端进行删除操作。
- 数组(Array):数组是一种聚合数据类型,它是将具有相同类型的若干变量有序地组织在一起的集合。
- 链表(Linked List):链表是一种数据元素按照链式存储结构进行存储的数据结构,这种存储结构具有在物理上存在非连续的特点。
- 树(Tree):树是典型的非线性结构,它是包括2 个结点的有穷集合 K。
- 图(Graph):图是另一种非线性数据结构。在图结构中,数据结点一般称为顶点,而边是顶点的有序偶对。
- 堆(Heap):堆是一种特殊的树形数据结构,一般讨论的堆都是二叉堆。
- 散列表(Hash table):散列表源自于散列函数(Hash function),其思想是如果在结构中存在关键字和T相等的记录,那么必定在F(T)的存储位置可以找到该记录,这样就可以不用进行比较操作而直接取得所查记录。
2) 算法具体内容:
一般有以下几种常用运算:
- 检索:检索就是在数据结构里查找满足一定条件的节点。一般是给定一个某字段的值,找具有该字段值的节点。
- 插入:往数据结构中增加新的节点。
- 删除:把指定的结点从数据结构中去掉。
- 更新:改变指定节点的一个或多个字段的值。
- 排序:把节点按某种指定的顺序重新排列。例如递增或递减。
上一篇:
下一篇:
https://blog.csdn.net/speedwalkman/article/details/129896394

268

被折叠的 条评论
为什么被折叠?



