数据结构(开篇)
什么是数据结构?
数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。简而言之就是研究数据储存方式。
数据结构的应用:
平时我们储存多项数据会使用数组,容器等,但是如果需要存储一个族谱这种带有关系的数据,我们可以使用数据结构中的树结构储存。
对于我们在导航时,地图中使用的数据,我们可以使用图存储结构来储存数据。
分类:
线性表
线性表并不是一种具体的存储结构,它包含顺序存储结构和链式存储结构,是顺序表和链表的统称。
顺序表
可以想象数组,顺序表的实现方式和数组相同,但是和数组是不同的概念,数据结构是研究数据存储方式的一门学科,它囊括的都是各种存储结构,而数组只是各种编程语言中的基本数据类型,并不属于数据结构的范畴。
顺序表(底层实现靠数组)时,需要提前申请一定大小的存储空间,这块存储空间的物理地址是连续的。
链表
链表存储数据时,是随用随申请,因此数据的存储位置是相互分离的,换句话说,数据的存储位置是随机的。
栈和队列
栈和队列隶属于线性表,是特殊的线性表,因为它们对线性表中元素的进出做了明确的要求。
栈中的元素只能从线性表的一端进出(另一端封死),且要遵循“先入后出”的原则,即先进栈的元素后出栈。
遵循“先进后出”
队列中的元素只能从线性表的一端进,从另一端出,且要遵循“先入先出”的特点,即先进队列的元素也要先出队列。
树存储结构
具有“一对多关系”
图存储结构
具有"多对多关系"
数据结构和算法:
数据结构用于解决数据存储问题,而算法用于处理和分析数据。
数据存储结构
- 逻辑结构
- 存储结构(物理结构)
1.数据的逻辑结构,简单地理解,就是指的数据之间的逻辑关系。(一对一,一对多,多对多)
2.数据的存储结构,也就是物理结构,指的是数据在物理存储空间上选择集中存放还是分散存放。