数据元素也称元素、结点、顶点、记录。由此得到的存储表示称为顺序存储结构,通常借助程序语言的数组描述。该方法主要应用于线性的数据结构。非线性的数据结构也可通过某种线性化的方法实现顺序存储。该方法的基本思想是,根据数据元素的关键字直接计算出该结点的存储地址。......
2023-11-25
顺序存储结构就是先向系统申请一块地址连续的存储单元,然后把数据按照某种次序存入这块内存单元的相应位置中。
所有高级语言都支持数组,在8.2.2节中曾讨论过,数组是一种构造数据类型,数组是相同数据类型的集合。在使用高级语言的程序设计中,定义一个数组要求具体给出该数组的数据类型和大小。在高级语言程序编译时,如果用户定义了数组,系统将分配用户希望的内存单元空间给相应的运行程序,这样该程序在运行时,就可以把数据存放在这些内存单元中。
例如,下面的C语言语句就定义了一个int数据类型,包括100个数据元素的数组v。
int v[100]
数组的数据类型不仅可以是基本数据类型,也可以是任何一个用户自己定义的结构体类型。例如,下面的C语言语句就首先定义了图书管理软件设计需要的结构体数据类型,然后定义了该结构体类型的包括1000个数据元素的数组b。
struct book
{
char bookNo[20]; //书号
char bookName[40]; 书名
char authorName[10]; 作者名
int status; //状态
};
book b[1000](www.chuimin.cn)
定义数组时之所以需要给出数组元素的数据类型和大小个数,是因为数据类型确定了每个数据元素需要占用的内存空间大小(即字节个数),系统为用户程序数组分配的内存空间大小是:每个数组元素需要占用的内存空间乘以数组总个数。
系统分配给用户程序数组的内存首地址由数组名指示。这样,有了数组在内存中的首地址和每个数组元素占用的内存字节个数,系统就可以计算出任意一个数组元素在内存中的地址。例如,已知int为4个字节,系统为上述数组v分配的内存首地址是1000,则第一个数组元素v[0]的内存地址就是1000,v[10]的内存地址就是1000+4*10=1040,最后一个数组元素v[99]的内存地址就是1000+4*99=1396。数组v的内存示意图如图8-5所示。
图8-5 数组Ⅴ的内存示意图
设系统为数组a分配的内存首地址为a0,数组的下标起始序号从0开始计数,每个数组元素占用的字节个数为k,则数组a中第i个数组元素的内存单元地址计算公式如下:
a[i]的内存地址=a0+i*k
我们在8.1节讨论了图书管理问题,图书管理问题的数据模型是一个线性表,线性表的顺序存储结构是使用一个数组存储所有线性表元素。图书管理问题线性表的数组定义方法是:
(1)定义图书管理问题要使用的数据元素结构体,如前面定义的结构体book。
(2)分析估计实际可能的最大图书数量,设最大图书数量为m。
(3)定义数据类型为book、个数为m的数组a。
这样,在程序运行时,首先把已有的所有图书的数据元素调入内存,然后根据用户需要进行图书数据元素的插入、删除、修改等操作。
顺序存储结构的最大优点是使用方法简单,最大缺点是必须预先分析估计出所需定义数组的最大个数。如果估计的数组的最大个数大大超过实际使用的数据元素个数,将造成内存资源的浪费;如果估计的数组的最大个数小于实际使用的数据元素个数,将导致程序运行失败。
有关计算机导论的文章
数据元素也称元素、结点、顶点、记录。由此得到的存储表示称为顺序存储结构,通常借助程序语言的数组描述。该方法主要应用于线性的数据结构。非线性的数据结构也可通过某种线性化的方法实现顺序存储。该方法的基本思想是,根据数据元素的关键字直接计算出该结点的存储地址。......
2023-11-25
在8.1节已讨论过链式存储结构下图书信息表的存储方法,图8-2给出了链式存储结构下图书信息表的存储关系示意,图8-2给出了链式存储结构下某次计算机运行时的内存存储图。图8-6 线性表的链式存储结构示意图高级语言要实现链式存储结构需要具有指针功能和内存空间的动态申请功能。链式存储结构的最大优点是内存资源的使用合理,除附加的指针内存空间外,不会出现太大的内存空间资源浪费,最大缺点是操作的实现方法相对复杂。......
2023-11-18
目前操作系统的存储管理中广泛采用虚拟存储技术。虚拟存储技术可以为用户提供比实际物理内存大得多的可随机访问的内存空间。虚拟存储技术有很多种实现方法,各种方法之间的差别,主要是实现虚地址到实地址的转换方法不同。图5-11 页式存储管理示例除页式存储管理外,虚拟存储技术的实现方法还有段式存储管理、段页式存储管理等。......
2023-11-18
通过第2章和第3章的讨论,我们对计算机硬件的基本结构有了更深一步的了解,图3-6给出了计算机硬件基本结构的概念框图。控制总线的控制信号一般都来自于CPU中的控制器。图3-4给出的CPU的基本构成中也有数据的传送通道,因为CPU是由拇指大小的一个芯片构成的,所以图3-4中的CPU内的数据传送通道称为片内总线。......
2023-11-18
所谓的拓扑结构,是指网络中各种通信设备之间连接的一种抽象形式。按网络的拓扑结构可以将计算机网络分为总线型、星型和环型。总线型网络在总线的两端必须设置电阻器,以防止信号的反射。工作站的接入或退出不影响网络的正常工作。星型网络结构是局域网中经常使用的一种结构,其拓扑结构如图9-4所示。图9-5 环型网络拓扑结构......
2023-11-18
我们把外存介质上的一个数据集合称为一个文件。文件的字母编号称为文件的设备号。文件通常用一个小数点符号分开成两部分,小数点前的符号串表示文件的名字,小数点后的符号串表示文件的类型。例如,MyFile1.dat和MyFile2.bmp就是两个类型不同的合法的文件名。图2-17 用户的文件结构图2-17所示的文件是用户视图的文件,这样的文件称为逻辑文件。具体设备上的具体物理存储位置中的0、1符号串称为物理文件。......
2023-11-18
递归结构是算法中的另一种重复结构。下面仍然以查找问题和阶乘问题为例,给出递归结构算法的两个例子,然后以阶乘问题递归算法的执行过程为例,讨论递归结构算法的执行流程。的伪码形式的递归算法:PROCEDURE Factorial2{IFTHEN y=1;ELSE y=n*Factorial2(n-1);}2.递归结构算法的执行流程用例6-4算法的执行过程讨论递归结构算法的执行流程。递归算法中的递归调用过程不能无休止的进行,任何递归算法都要考虑递归调用的结束条件,这称作递归出口。......
2023-11-18
计算机进行数据输入和数据输出时使用的最小单位称为数据元素。书号、书名、作者名、状态等称为数据元素的数据项。如何表示现实世界中的各种不同的数据元素模型,如何在程序设计中实现各种不同的数据元素模型,是数据结构要讨论的主要问题。为了使读者理解数据结构的基本概念,我们以图书信息计算机管理问题的软件设计为例来进行说明。数据结构主要有数据的逻辑结构、数据的存储结构以及对数据元素的操作。......
2023-11-18
相关推荐