目录
在学习顺序表之前,先来了解一下什么是数据结构、什么是线性表。
一:数据结构概论
1.什么是数据结构?
数据结构是计算机用于存储和组织数据的一种方法。它涉及到数据的逻辑结构和物理结构,以及这两者之间的相互关系。
数据的逻辑结构描述了数据元素之间的逻辑关系,而物理结构则是指这些数据元素在计算机中的实际存储方式。
数据结构的研究还涉及到为这种结构定义适当的运算,并设计出相应的算法,确保经过这些运算后得到的新结构仍保持原来的结构类型。
常见的数据结构包括顺序表、链表、栈、队列、树和图等。这些结构各有特点,适用于不同的应用场景。
2.学习数据结构的作用
- 提高算法的效率
- 优化程序执行速度
- 更好地解决实际问题
- 应用于各个领域
二:什么是线性表?
线性表是一种数据结构,它由具有相同特性的数据元素有限序列组成。
这些数据元素之间的关系是一对一的,这意味着除了第一个和最后一个数据元素外,其他数据元素都只有一个前驱和一个后继。线性表的逻辑结构简单,便于实现和操作,因此在计算机科学中应用广泛。线性表的长度,即所含元素的个数,用n表示,且n可以等于零,表示线性表是一个空表。此外,线性表可以是有序的,也可以是无序的。
知道了线性表后,我们来说本章主要的顺序表。
三:顺序表的概念
1.什么是顺序表?
顺序表的底层是数组,是对数组的封装,线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素、使得线性表中在逻辑结构上相邻的数据元素物理结构上也相邻,即通过数据元素物理存储的相邻关系来反映数据元素之间逻辑上的相邻关系,采用顺序存储结构的线性表通常称为顺序表。顺序表是将表中的结点依次存放在计算机内存中一组地址连续的存储单元中。
2.顺序表的作用
- 顺序表的主要作用包括存储数据、管理数据和操作数据。
- 顺序表支持随机访问和顺序访问,逻辑顺序与物理顺序一致,每个元素都有唯一的位置,可以通过索引直接访问。
- 顺序表的基本操作包括插入、删除、查找、修改、排序、合并和返回元素个数等。
3.顺序表的分类
顺序表分为静态顺序表和动态顺序表。
- 静态顺序表:其主要特点是其在初始化时分配了固定的存储空间,之后不能动态地增加或减少存储空间。这种表使用定长数组来存储元素,适用于在编程时可以预先估计所需存储数据量的情况。如果预先估计的数据量恰好等于实际所需,那么使用静态顺序表可以非常高效,因为它避免了动态内存分配的开销。然而,如果实际数据量远超预估值,静态顺序表可能会导致存储空间不足;反之,如果预估过大,则会造成存储空间的浪费。
- 动态顺序表:其特点是使用动态分配的内存数组进行存储,在程序执行过程中根据需要动态地分配或扩充存储空间。动态顺序表的优势在于其灵活性,不需要预先分配固定的存储空间,避免了空间浪费,适用于数据元素数量不确定或需要频繁增删的场景。
在日常的程序编写中,大多使用的是动态顺序表,因此本章主要讲解动态顺序表。
四:动态顺序表的实现
实现动态顺序表的实现之前我们需要创建2个源文件分别进行顺序表功能的实现和功能的测试,和一个头文件用于函数的声明和顺序表的创建。(vs2022)
我们在写的过程中也要遵循先声明再实现最后测试。(声明——实现——测试)