第二章 数据的存储方式 课件 2023—2024学年粤教版(2019)高中信息技术选修1

2023-11-18
| 32页
| 868人阅读
| 9人下载
特供

内容正文:

2.1 数据存储的顺序结构与链式结构 2 . 1 . 1  数据存储的顺序结构 数据元素之间有一种常见的逻辑结构——线性结构,其数据元素中除第一个和最后一个数据元素之外,其他数据元素都是首尾相接的。就如生活中的一个队伍一样,队伍中的每个人可以看作一个数据元素,除了第一个人和最后一个人之外,其他人都是跟在某一个人之后,且其后面又跟着另外一个人。如某数据结构中,数据元素的集合K和K上二元关系的集合R如下: K={ a1,a2,…,ai-1,ai ,…,an-1,an } R ={< a1,a2 > ,< a2,a3 >,…,< ai-1,ai > ,…,< an-1,an >} 其中,i为整数且1<i≤n 。 我们说ai-1是ai的前驱,ai是ai-1的后继。这种数据元素之间的线性关系指的是逻辑结构上的,而在物理存储上则不一定。 2.2 数据的顺序存储与组织 数据在计算机中能够以顺序结构进行存储。用计算机程序来实现对数据元素的顺序存储与组织,可以使用数组这种数据结构。 1.一维数组 在计算机程序设计中,可以通过数组(Array)这种数据结构来实现对具有相同数据类型且按一定逻辑顺序排列的数据元素的存储与组织,定义了一个数组就是定义了一块可使用的连续存储空间,数组的基本类型就是数据元素的类型,数组的长度就是数组元素的最大个数。在C++语言中,数组的一般定义方式为: 类型说明符 数组名[数组长度]; 其中,“类型说明符”是任一种数据类型,“数组名”是用户定义的数组标识符,“数组长度”必须为常量表达式。例如: int a[6]; 一维数组 int a[6] a[0] a[1] a[2] a[3] a[4] a[5] 1 2 3 4 5 6 定义数组为整型,数组名为a,数组长度为6的一个数组。 a=[1,2,3,4,5,6] 2.二维数组 数组的下标可以是一个,也可以是多个。当数组有两个下标时,就称为二维数组。二维数组可以看成一维数组的嵌套,即首先把它看作一个一维数组,这个数组的每个元素又是一个一维数组。如一个二维数组b,可看成为某个一维数组共有n个元素,分别是b[0],b[1],…,b[n-1],其中每个元素b[i](0≤i<n)又是一个有m个元素的一维数组,分别是b[i][0], b[i][1],…,b[i][m-1]。 从逻辑结构上,我们也可以把这个二维数组看成一个n行m列的矩阵,并把第一个下标称为行下标,第二个下标称为列下标。 int b[4][3]; int b[4] 虽然二维数组在逻辑结构上具有行与列两个方向,但它作为一种顺序结构,所有元素在计算机内存空间中的物理存储地址仍是连续的。如在n行m列的二维数组b中,每个数据元素占用d个字节,假设b的第一个数据元素的计算机存储地址为Loc(b[0][0]),那么b的存储结构如图2-5所示。 2 . 2 . 2  数组的基本操作 对于一维数组,通常有遍历(用于数组元素的赋值或查找)、插入元素、删除元素这几种操作。 通过对数组的操作,我们可以实现以数组为数据结构的数据的各种管理功能。 2 . 1 . 2  数据存储的链式结构 数据的链式结构与顺序结构不同,它的特点是存储各个数据元素的计算机存储单元的地址不一定是连续的。因此,为了表示每个数据元素ai与其后继数据元素ai+1之间的逻辑关系,对于数据元素ai来说,除了存储其本身的信息,还需要存储其后继数据元素的存储位置信息。 比如,人们到银行、医院办理业务时,一般都是在叫号系统取号之后就在大厅中静坐等候。此时的人们看似无序,但叫号系统为每个人分配的号码无形中把等候的人们串成了一条链子。 当以链式结构存储数据时,一种最简单也最常用的方法是分别用两个域存储数据元素的两部分信息:数据域存储数据元素自身信息,指针域存储后继数据元素的存储位置。 链式结构存储学生信息表 指针不指向任何一个存储单元,这种指针称为空指针,最后一位同学由于没有后记数据,所以指针域没有指向任何一个存储单元,用符号表示指针域为空指针赋值为null。 2 . 3 . 1  指针与指针变量 采用链式结构存储数据的特点是:每个数据元素除了要存储数据本身的信息外,还需要存储一个指示其后继数据元素的信息(即后继数据元素的存储位置)。在C++语言中,通常使用指针(Pointer)来实现这种存储位置的指示。 所谓指针,就是指某个内存单元的地址。在C++语言中,指针也是一种数据类型。与普通数据类型不同的是,定义指针变量(Pointer Variable)没有专门的关键字,而是利用“*”(星号)来进行定义。 C++语言中定义指针变量的一般形式为:类型说明符 *变量名; //指针变量的定义形式:类型说明符 *变量名; int *pi; //定义一个整型指针 float *pf; //定义

资源预览图

第二章 数据的存储方式  课件 2023—2024学年粤教版(2019)高中信息技术选修1
1
第二章 数据的存储方式  课件 2023—2024学年粤教版(2019)高中信息技术选修1
2
第二章 数据的存储方式  课件 2023—2024学年粤教版(2019)高中信息技术选修1
3
第二章 数据的存储方式  课件 2023—2024学年粤教版(2019)高中信息技术选修1
4
第二章 数据的存储方式  课件 2023—2024学年粤教版(2019)高中信息技术选修1
5
第二章 数据的存储方式  课件 2023—2024学年粤教版(2019)高中信息技术选修1
6
所属专辑
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。