一、数据结构的一些常见概念
- 数据元素:数据的基本单位(又称为记录)
- 数据项:不可分割的最小标识单位
- 数据对象:相同类型的数据元素的集合
- 数据结构:相互之间存在一种或多种特定关系的元素的集合
- 数据类型:是在程序设计语言中已经实现了的数据结构
那什么是数据结构,它包括:
程序 = 数据结构 + 算法
二、数据的物理结构
存储结构包括两种:顺序存储结构、链式存储结构
-
顺序存储结构:在底层中用连续地址的存储单元来存储数据,常用数组实现
-
链式存储结构:用不连续的存储单元存放数据元素,并为每个元素增设指针域,用来指向后继元素,常用链表实现
数组和链表的区别
- 从逻辑结构来看:数组必须事先定义固定的长度,不能适应数据动态地增减的情况;链表动态地进行存储分配,可以适应数据动态地增减的情况,且可以方便地插入、删除数据项
- 从内存存储来看:(静态)数组从栈中分配空间(用NEW创建的在堆中), 对于程序员方便快速,但是自由度小;链表从堆中分配空间, 自由度大但是申请管理比较麻烦
- 从访问方式来看:数组在内存中是连续存储的,因此,可以利用下标索引进行随机访问;链表是链式存储结构,在访问元素的时候只能通过线性的方式由前到后顺序访问,所以访问效率比数组要低
三、数据的逻辑结构
数据的逻辑结构主要分为以下四类:
1.集合 | 2.线性结构 | 3.树形结构 | 4.图形结构 |
---|---|---|---|
结构中的数据元素之间除了“同属于一个集合”的关系之外,别无其他关系 | 数据元素之间属于“一对一”的关系 常见类型:线性表、栈、队列 | 结点间具有层次关系,每一层的一个结点能且只能和上一层的一个结点相关,但同时可以和下一层的多个结点相关,称为“一对多”关系 常见类型有:树、堆 | 在图形结构中,允许多个结点之间相关,称为“多对多”关系 |
![]() | ![]() | ![]() | ![]() |
下一篇是线性结构的分类和实现