本篇文章是对数据结构概念的纯理论介绍,希望系统了解数据结构概念的友友可以看看,对概念要求不高的友友稍做了解后移步下一节:
数据结构(初阶)第二节:顺序表-CSDN博客
正文
目录
正文
1.数据结构的相关概念
1.1什么是数据
1.2什么是数据结构
1.3为什么需要数据结构
1.4数据结构的分类
逻辑结构
集合结构
线性结构
树形结构
图形结构(网状结构)
物理结构
1.数据结构的相关概念
1.1什么是数据
数据是对客观事物的表示,在计算机科学中表示被输入到计算机中被计算机处理的符号的总称。
1.2什么是数据结构
数据结构是计算机存储、组织数据的⽅式。数据结构是指相互之间存在⼀种或多种特定关系的数据元素的集合。数据结构反映数据的内部构成,即数据由那部分构成,以什么⽅式构成,以及数 据元素之间呈现的结构。
1.3为什么需要数据结构
在程序运行的是如果不对数据进行有效的管理,就可能会导致数据的丢失、损坏等,还有可能会破坏程序中的其他部分(如野指针),而为了有效管理组织数据,数据结构的概念由此诞生。而数组就是最基础的数据结构。
1.4数据结构的分类
一般来说,数据结构结构可分为逻辑结构和物理结构两大类。
逻辑结构
数据结构之间的关系代表某种含义,这种自然或人为定义的“关系”成为数据元素之间的逻辑关系,相应的结构被称为逻辑结构,数据元素之间基本的逻辑结构有以下4种类型。
集合结构
数据元素同属于一个集合,但不同的元素之间没有任何的对应关系
线性结构
数据元素之间存在一对一的关系,如线性表、栈、队列等
树形结构
数据元素之间存在一对多的关系,包括树、二叉树等
图形结构(网状结构)
数据元素之间存在多对多的关系,如有向图、无向图、带权图和无权图等
物理结构
物理结构是数据在计算机内存中存储的形式,物理结构需要体现的是数据元素在内存中存储的形式以及结构,基本的物理结构可分为以下4种类型。
1.顺序存储结构:将数据元素放在地址连续的内存空间里
特点:
1) 占用一大片连续内存空间
2) 不需要额外空间存储逻辑关系,总空间需求最少
4) 可顺序访问,支持随机访问
5) 在C语言中,通过数组实现
6) 数据元素的插入和删除操作通过移动元素完成
2.链式存储结构:数据元素在内存中的地址不要求连续,但一定要有逻辑结构,各个元素之间通过指针建立联系
特点:
1) 不要求占用连续内存空间
2) 不仅要存储数据,还要存储数据之间的关系,故总空间需求较大
3) 通过指针反映逻辑关系
4) 逻辑连续,物理可不连续
5) 只可顺序访问,不支持随机访问
6) 存在标记:头指针
7) 数据元素的插入和删除操作通过修改指针完成:定位插入点/删除点的直接前驱/后
3.索引存储结构:
特点:
1) 不要求占用连续内存空间
2) 不仅要存储数据,还要存储关系,故总空间需求较大
3) 通过索引表记录逻辑关系
4) 逻辑连续,物理可不连续
5) 可顺序访问,支持随机访问
6) 数据元素的插入和删除操作通过修改索引表中相关数据元素的存储地址进行
7) 需要额外存储空间:通过索引表存储逻辑关系
8) 需要额外操作时间:对索引表进行维护
4.散列存储结构:
特点:
1) 物理位置通过哈希函数计算得到
2) 逻辑连续,物理可不连续
3) 可顺序访问,由于存在冲突,仅支持部分随机访问
4) 重点:散列函数和解决冲突方法