笔记
顺序表
一.数据结构相关内容
1)数据:是能够被计算机识别、储存、处理的用于描述客观事实的符号
2)数据的基本单位:数据元素
数据元素:所谓数据元素就是能够完成描述事物的基本单位
3)数据的最小单位:数据项
数据项:用于组成数据元素的不可分割的最小单位
4)数据对象:由多个数据元素组成的一个集合位数据对象。
5)数据之间的关系:数据项==》数据元素==》数据对象==》数据
二.结构
数据结构中,结构分为两部分:逻辑结构、存储结构
逻辑结构 | 存储结构 |
集合结构:所有的数据元素之间没有任何关系,仅仅只是被放在同一个集合中。例如:一列公交车上的所有人 | 顺序存储:使用一片连续的存储空间,存储上述逻辑结构的元素,特点:逻辑上相邻的元素,物理内存上也连续 |
线性结构:数据元素之间存在一对一的关系。例如:食堂打饭排队 | 链式存储:使用多个随机地址空间存储上述逻辑结构的元素,特点:逻辑上相邻的元素,物理内存上不一定相邻 |
树形结构:数据元素之间存在一对多的关系。例如:族谱 | 索引存储:在存储数据元素时,额外多加一张索引表记录数据元素的位置 |
图型结构:数据元素之间存在多对多的关系。例如:朋友 | 散列存储(哈希存储):所存储的数据元素的位置与数据元素的关键字有关 |
数据结构:所谓数据结构,其实就是数据之间存在的一种或多种关系的集合,以及加在该集合上的一组操作(增删改查)
三.线性表
1)概念:由多个相同特性的数据元素组成的线性结构叫做线性表
2)特点:除了第一个元素没有前驱,最后一个元素没有后继外,其他的数据元素有且只有一个前驱和一个后继
3)线性表的分类
按存储方式 | 按操作受限的方式 |
顺序表:顺序存储的线性表称为顺序表 | 栈:只允许在同一个端点处进行插入和删除操作的线性表 |
链表:链式存储的线性表称为链表 | 队列:只允许在异端进行插入和删除操作的线性表 |
四顺序表
4.1顺序表的概念
1)顺序存储的线性表叫做顺序表
线性表:说明该容器对应的逻辑结构为线性结构
顺序存储:表示存储结构为顺序结构,就是使用连续的存储空间进行操作
2)连续存储空间:可以使用数组来完成或者使用堆区空间内
3)顺序表的表示方式:除了使用一个连续的内存存储顺序表外,还需要外加一个表示顺序表实际长度的变量完成
4)对顺序表长度的分析
1.顺序表的长度能够表示顺序表中实际使用的元素个数
2.也能够表示数组中第一个没有存放数据元素的数组下标
3.要遍历整个顺序表时,顺序表的长度是最大上限
4.2有关顺序表的操作
1)创建顺序表
1、可以在堆区申请一个顺序表,后面操作时,只需要将该顺序表的起始地址传递即可
2、申请出顺序表的空间后,至少需要对顺序表的长度初始化
2)顺序表判空和判断满
1、对于添加顺序表元素的操作而言,需要判断顺序表是否已经满了,如果满了的话,则添加失败
一般情况:len
2、对于减少顺序表元素的操作而言,需要判断顺序表是否已经空了,如果空了的话,就减少失败
空:len == 0
3)向顺序表中添加元素
1、判断条件:如果顺序表已经满了,就不能进行添加操作
2、每次添加的数据放入到顺序表的最后面,也就是放在len所在的位置
3、添加完元素后,需要将长度增加
4)遍历顺序表
1、判断逻辑:表是否合法,表是否为空
2、本质上就是数组的遍历,只是遍历到顺序表的长度结束即可
5)顺序表按位置进行插入元素
1、判断逻辑:顺序表不为空,顺序表不满,要插入位置不能小于0,也不能大于len
2> 插入逻辑:需要将从最后一个元素到要插入位置的元素之间所有元素整体向后移动一格
将新元素放入到要插入位置即可
6)顺序表任意位置删除元素
1、判断逻辑:表是否为空、表是否合法、删除位置是否合法
2、需要将要删除位置后面的元素开始到最后一个位置为止,整体前移动一格