数据结构复习(数组和广义表).

合集下载

数据结构第4章 数组和广义表

数据结构第4章  数组和广义表

第4章数组和广义表【例4-1】二维数组A的每一个元素是由6个字符组成的串,其行下标i=0,1,…,8,列下标j=1,2,…,10。

若A以行为主序存储元素,A[8][5]的物理地址与当A按列为主序存储时的元素()的物理地址相同。

设每个字符占一个字节。

A.A[8][5] B.A[3][10] C.A[5][8] D.A[0][9]解:二维数A是一个9行10列的矩阵,即A[9][10]。

按行存储时,A[8][5]是第85个元素存储的元素。

而按列存储时,第85个存储的元素是A[3][10]。

即正确答案为B。

【例4-2】若对n阶对称矩阵A以行序为主序方式将其下三角形的元素(包括主对角线上所有元素)依次存放于一维数组B[n(n+1)/2]中,则在B中确定的位置k的关系为()。

A.jii+-2)1(*B.ijj+-2)1(*C.jii++2)1(*D.ijj++2)1(*解:如果a ij按行存储,那么它的前面有i-1行,其有元素个数为:1+2+3+…+(i-1)=i(i-1)/2。

同时它又是所在行的第j列,因此它排列的顺序还得加上j,一维数组B[n(n+1)/2]中的位置k与其下标的关系是:jii+-2)1(*。

因此答案为A。

【例4-3】已知n阶下三角矩阵A,按照压缩存储的思想,可以将其主对角线以下所有元素(包括主对角线上元素)依次存放于一维数组B中。

请写出从第一列开始以列序为主序分配方式时在B中确定元素a ij的存放位置的公式。

解:如果a ij按列存储,那么它的前面有j-1列,共有元素:n+(n-1)+(n-2)+ …+[n-(j-2)]=(j-1)*n-2)1)(2(--jj而它又是所在列的第i行,因此在它前的元素个数还得加上i。

因此它在一维数组B中的存储顺序为:(j-1)*n-2)1)(2(--jj+i【例4-4】已知广义表L=((x,y,z),a,(u,t,w)),从L表中取出的原子项ASCII码最大的运算是()。

数据结构第五章 数组与广义表

数据结构第五章 数组与广义表
an-1,n-1
压缩存储方法:只需要存储下三角 (含对角线)上的元素。可节省一 半空间。
可以使用一维数组Sa[n(n+1)/2]作为n阶对称矩阵A的存 储结构,且约定以行序为主序存储各个元素,则在Sa[k]和矩
阵元素aij之间存在一一对应关系: (下标变换公式)
i(i+1)/2 + j 当i≥j k = j(j+1)/2 + i 当i<j
q = cpot[col];
T.data[q].i = M.data[p].j; T.data[q].j = M.data[p].i; T.data[q].e = M.data[p].e; ++cpot[col]; }
分析算法FastTransposeSMatrix的时间 复杂度:
for (col=1; col<=M.nu; ++col) … … for (t=1; t<=M.tu; ++t) … … for (col=2; col<=M.nu; ++col) … … for (p=1; p<=M.tu; ++p) … …
//对当前行中每一个非零元

brow=M.data[p].j;

if (brow < N.nu ) t = N.rpos[brow+1];
M
else { t = N.tu+1 }

for (q=N.rpos[brow]; q< t; ++q) { ccol = N.data[q].j; // 乘积元素在Q中列号
一、三元组顺序表
对于稀疏矩阵,非零元可以用三元组表示, 整个稀疏矩阵可以表示为所有非零元的三元组所 构成的线性表。例如:

《数据结构(C语言-耿国华版)》复习大纲

《数据结构(C语言-耿国华版)》复习大纲

第一章绪论1.数据:人们利用文字符号、数字符号及其他规定的符号对现实世界的事物及其活动的描述。

凡是能被计算机输入、存储、处理和输出的一切信息都叫数据。

2.数据元素:数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。

数据元素的组成:一个数据元素通常由一个或若干数据项组成。

数据项:指具有独立含义的最小标识单位。

3.数据对象:性质相同的数据元素的集合,是数据的一个子集。

4.数据结构:研究的是数据的逻辑结构和物理结构,以及它们之间的相互关系和所定义的算法在计算机上运行的学科。

5.算法:是对待定问题求解步骤的一种描述,是指令的有限序列。

算法应满足以下性质:1)输入性:具有零个或若干个输入量;2)输出性:至少产生一个输出;3)有穷性:每条指令的执行次数是有限的;4)确定性:每条指令的含义明确,无二义性;5)可行性:每条指令都应在有限的时间内完成。

6.评价算法优劣的主要指标:1)执行算法后,计算机运行所消耗的时间,即所需的机器时间;2)执行算法时,计算机所占存储量的大小,即所需的存储空间;3)所设计的算法是否易读、易懂,是否容易转换成其他可运行的程序语言。

7.会估算某一算法的总执行时间和时间复杂度。

8.熟悉习题P32:3(5)-(9)、4(2)(3)第二章线性表1.线性表(P7):是性质相同的一组数据元素序列。

线性表的特性:1)数据元素在线性表中是连续的,表中数据元素的个数可以增加或减少,但调整后数据元素仍必须是连续的,即线性表是一种线性结构。

2)数据元素在线性表中的位置仅取决于自己在表中的序号,并由该元素数据项中的关键字(key)加以标识。

3)线性表中所有数据元素的同一数据项,其属性是相同的,数据类型也是一致的。

线性表的主要运算有:插入、删除、查找、存取、长度、排序、复制、合并。

线性表的顺序存储结构及特点(就是把表中相邻的数据元素存放在内存邻接的存储单元,这种存储方法叫做顺序分配,又称顺序映像。

数据结构大纲知识点

数据结构大纲知识点

数据结构大纲知识点一、绪论。

1. 数据结构的基本概念。

- 数据、数据元素、数据项。

- 数据结构的定义(逻辑结构、存储结构、数据的运算)- 数据结构的三要素之间的关系。

2. 算法的基本概念。

- 算法的定义、特性(有穷性、确定性、可行性、输入、输出)- 算法的评价指标(时间复杂度、空间复杂度的计算方法)二、线性表。

1. 线性表的定义和基本操作。

- 线性表的逻辑结构特点(线性关系)- 线性表的基本操作(如初始化、插入、删除、查找等操作的定义)2. 顺序存储结构。

- 顺序表的定义(用数组实现线性表)- 顺序表的基本操作实现(插入、删除操作的时间复杂度分析)- 顺序表的优缺点。

3. 链式存储结构。

- 单链表的定义(结点结构,头指针、头结点的概念)- 单链表的基本操作实现(建立单链表、插入、删除、查找等操作的代码实现及时间复杂度分析)- 循环链表(与单链表的区别,操作特点)- 双向链表(结点结构,基本操作的实现及特点)三、栈和队列。

1. 栈。

- 栈的定义(后进先出的线性表)- 栈的基本操作(入栈、出栈、取栈顶元素等操作的定义)- 顺序栈的实现(存储结构,基本操作的代码实现)- 链栈的实现(与单链表的联系,基本操作的实现)- 栈的应用(表达式求值、函数调用栈等)2. 队列。

- 队列的定义(先进先出的线性表)- 队列的基本操作(入队、出队、取队头元素等操作的定义)- 顺序队列(存在的问题,如假溢出)- 循环队列的实现(存储结构,基本操作的代码实现,队空和队满的判断条件)- 链队列的实现(结点结构,基本操作的实现)- 队列的应用(如操作系统中的进程调度等)四、串。

1. 串的定义和基本操作。

- 串的概念(字符序列)- 串的基本操作(如连接、求子串、比较等操作的定义)2. 串的存储结构。

- 顺序存储结构(定长顺序存储和堆分配存储)- 链式存储结构(块链存储结构)3. 串的模式匹配算法。

- 简单的模式匹配算法(Brute - Force算法)的实现及时间复杂度分析。

数据结构_(严蔚敏C语言版)_学习、复习提纲.

数据结构_(严蔚敏C语言版)_学习、复习提纲.

期末复习 第一章 绪论 复习1、计算机算法必须具备输入、输出、可行性、确定性、有穷性5个特性。

2、算法分析的两个主要方面是空间复杂度和时间复杂度。

3、数据元素是数据的基本单位。

4、数据项是数据的最小单位。

5、数据结构是带结构的数据元素的集合。

6、数据的存储结构包括顺序、链接、散列和索引四种基本类型。

基础知识数据结构算 法概 念逻辑结构 存储结构数据运算数据:计算机处理的信息总称 数据项:最小单位 数据元素:最基本单位数据对象:元素集合数据结构:相互之间存在一种或多种特定关系的数据元素集合。

概念:数据元素之间的关系 线性结构:一对一非线性结构 树:一对多 图:多对多顺序存储结构 链表存储结构 索引。

散列。

算法描述:指令的有限有序序列算法特性 有穷性 确定性 可行性 输入 输出 算法分析时间复杂度 空间复杂度第二章 线性表 复习1、在双链表中,每个结点有两个指针域,包括一个指向前驱结点的指针 、一个指向后继结点的指针2、线性表采用顺序存储,必须占用一片连续的存储单元3、线性表采用链式存储,便于进行插入和删除操作4、线性表采用顺序存储和链式存储优缺点比较。

5、简单算法第三章 栈和队列 复习线性表顺序存储结构链表存储结构概 念基本特点基本运算定义逻辑关系:前趋 后继节省空间 随机存取 插、删效率低 插入 删除单链表双向 链表 特点一个指针域+一个数据域 多占空间 查找费时 插、删效率高 无法查找前趋结点运算特点:单链表+前趋指针域运算插入删除循环 链表特点:单链表的尾结点指针指向附加头结点。

运算:联接1、 栈和队列的异同点。

2、 栈和队列的基本运算3、 出栈和出队4、 基本运算第四章 串 复习栈存储结构栈的概念:在一端操作的线性表 运算算法栈的特点:先进后出 LIFO初始化 进栈push 出栈pop队列顺序队列 循环队列队列概念:在两端操作的线性表 假溢出链队列队列特点:先进先出 FIFO基本运算顺序:链队:队空:front=rear队满:front=(rear+1)%MAXSIZE队空:frontrear ∧初始化 判空 进队 出队取队首元素第五章 数组和广义表 复习串存储结构运 算概 念顺序串链表串定义:由n(≥1)个字符组成的有限序列 S=”c 1c 2c 3 ……cn ”串长度、空白串、空串。

数据结构:第5章 数组与广义表1-数组

数据结构:第5章 数组与广义表1-数组

中的元素均为常数。下三角矩阵正好相反,它的主对
数据结构讲义
第5章 数组与广义表
—数组
数组和广义表
数组和广义表可看成是一种特殊的 线性表,其特殊在于,表中的数据 元素本身也是一种线性表。
几乎所有的程序设计语言都有数组 类型。本节重点讲解稀疏矩阵的实 现。
5.1 数组的定义
由于数组中各元素具有统一的类型,并且 数组元素的下标一般具有固定的上界和下 界,因此,数组的处理比其它复杂的结构 更为简单。
nm
aa1221
aa2222
…………....
aam2n2 ………………..
aamm11 aamm22 ………….... aammnn LLoocc(a( iaj)ij=)L=Loco(ca(a111)1+)[+([j(-i1-)1m)n++((i-j1-1)])*]*l l
aa1mn 1 aa2mn2 …………....
其存储形式如图所示:
15137 50800 18926 30251
a00 a10 a 11 a20 a21 a23 ………………..
70613
an-1 0 a n-1 1 a n-1 2 …a n-1 n-1
图 5.1 对称矩阵
在这个下三角矩阵中,第i行恰有i+1个元素,元素总
数为:
n(n+1)/2
5.2 数组的顺序表示和实现
由于计算机的内存结构是一维的,因此用 一维内存来表示多维数组,就必须按某种 次序将数组元素排成一列序列,然后将这 个线性序列存放在存储器中。
又由于对数组一般不做插入和删除操作, 也就是说,数组一旦建立,结构中的元素 个数和元素间的关系就不再发生变化。因 此,一般都是采用顺序存储的方法来表示 数组。

数据结构 复习重点

数据结构 复习重点

数据结构复习重点谁让我找到你们了.第一章1.数据是信息的载体,它能够被计算机识别、存储和加工处理。

2.数据元素是数据的基本单位。

有些情况下,数据元素也称为元素、结点、顶点、记录。

3.数据结构指的是数据之间的相互关系,即数据的组织形式。

一般包括三个方面的内容:①数据元素之间的逻辑关系,也称为数据的逻辑结构;②数据元素及其关系在计算机存储器内的表示,称为数据的存储结构;③数据的运算,即对数据施加的操作。

4.数据类型是一个值的集合以及在这些值上定义的一组操作的总称。

按"值"是否可分解,可将数据类型划分为两类:①原子类型,其值不可分解;②结构类型,其值可分解为若干个成分。

5.抽象数据类型是指抽象数据的组织和与之相关的操作。

可以看作是数据的逻辑结构及其在逻辑结构上定义的操作。

6.数据的逻辑结构简称为数据结构。

数据的逻辑结构可分为两大类:①线性结构(~的逻辑特征是若结构是非空集,则有且仅有一个开始结点和一个终端结点,并且所有结点都最多只有一个直接前趋和一个直接后继);②非线性结构(~的逻辑特征是一个结点可能有多个直接前趋和直接后继)。

7.数据存储结构可用四种基本的存储方法表示:①顺序存储方法(该方法是把逻辑上相邻的结点存储在物理位置上相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现。

由此得到的存储表示称为顺序存储结构);②链接存储方法(该方法不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是由附加的指针字段表示的。

由此得到的存储表示称为链式存储结构);③索引存储方法(该方法通常是在存储结点信息的同时,还建立附加的索引表);④散列存储方法(该方法的基本思想是根据结点的关键字直接计算出该结点的存储地址)。

8.非形式地说,算法是任意一个良定义的计算过程,它以一个或多个值作为输入,并产生一个或多个值为输出。

因此,一个算法是一系列将输入转换为输出的计算步骤。

9.求解同一计算问题可能有许多不同的算法,究竟如何来评价这些算法的好坏以便从中选出较好的算法呢?选用的算法首先应该是"正确"的。

数据结构期末考试复习总结(最新编写)

数据结构期末考试复习总结(最新编写)

数据结构试卷(二)
5
1204 班 学委精心整理 数据结构期末复习
三、应用题(36 分) 1. 设一组初始记录关键字序列为(45,80,48,40,22,78),则分别给出第 4 趟简单选择
排序和第 4 趟直接插入排序后的结果。 (22,40,45,48,80,78),(40,45,48,80,22,78)
1204 班 学委精心整理 数据结构期末复习
《数据结构》期末考试题型及分值
(1)简答题 6 题*5 分=30 分
简要回答要点
(2)分析题 6 题*5 分=30 分
给出结果
(3)设计题 1 题*10 分=10 分
设计思想及结果
(4)编程题 1 题*10 分=10 分
完整代码
(5)综合题 1 题*20 分=20 分 抽象数据类型的定义、表示、实现、算法分析
3
1204 班 学委精心整理 数据结构期末复习
1. 在如下数组 A 中链接存储了一个线性表,表头指针为 A [0].next,试写出该线性表。 A0 12 34 56 7
data
60 50 78 90 34
40
next 3 5 7 2 0 4
1
0 1 1 1 0 1 0 1 0 1 1 1 0 1 1 1 0 1 0 1
H(63)=63 mod 7=0;
H(22)=22 mod 7=1; ….冲突
(1)计算出每一个元素的散列地址并在下图中填写出散列表:
7
1204 班 学委精心整理 数据结构期末复习
`
0
1
2
3
4
5
6
63
36
15
22
40
(2)求出在查找每一个元素概率相等情况下的平均查找长度。

《数据结构与算法》第五章-数组和广义表学习指导材料

《数据结构与算法》第五章-数组和广义表学习指导材料

《数据结构与算法》第五章数组和广义表本章介绍的数组与广义表可视为线性表的推广,其特点是数据元素仍然是一个表。

本章讨论多维数组的逻辑结构和存储结构、特殊矩阵、矩阵的压缩存储、广义表的逻辑结构和存储结构等。

5.1 多维数组5.1.1 数组的逻辑结构数组是我们很熟悉的一种数据结构,它可以看作线性表的推广。

数组作为一种数据结构其特点是结构中的元素本身可以是具有某种结构的数据,但属于同一数据类型,比如:一维数组可以看作一个线性表,二维数组可以看作“数据元素是一维数组”的一维数组,三维数组可以看作“数据元素是二维数组”的一维数组,依此类推。

图5.1是一个m行n列的二维数组。

5.1.2 数组的内存映象现在来讨论数组在计算机中的存储表示。

通常,数组在内存被映象为向量,即用向量作为数组的一种存储结构,这是因为内存的地址空间是一维的,数组的行列固定后,通过一个映象函数,则可根据数组元素的下标得到它的存储地址。

对于一维数组按下标顺序分配即可。

对多维数组分配时,要把它的元素映象存储在一维存储器中,一般有两种存储方式:一是以行为主序(或先行后列)的顺序存放,如BASIC、PASCAL、COBOL、C等程序设计语言中用的是以行为主的顺序分配,即一行分配完了接着分配下一行。

另一种是以列为主序(先列后行)的顺序存放,如FORTRAN语言中,用的是以列为主序的分配顺序,即一列一列地分配。

以行为主序的分配规律是:最右边的下标先变化,即最右下标从小到大,循环一遍后,右边第二个下标再变,…,从右向左,最后是左下标。

以列为主序分配的规律恰好相反:最左边的下标先变化,即最左下标从小到大,循环一遍后,左边第二个下标再变,…,从左向右,最后是右下标。

例如一个2×3二维数组,逻辑结构可以用图5.2表示。

以行为主序的内存映象如图5.3(a)所示。

分配顺序为:a11 ,a12 ,a13 ,a21 ,a22,a23 ; 以列为主序的分配顺序为:a11 ,a21 ,a12 ,a22,a13 ,a23 ; 它的内存映象如图5.3(b)所示。

数据结构第5章

数据结构第5章

第5章:数组和广义表 1. 了解数组的定义;填空题:1、假设有二维数组A 6×8,每个元素用相邻的6个字节存储,存储器按字节编址。

已知A 的起始存储位置(基地址)为1000,则数组A 的体积(存储量)为 288 B ;末尾元素A 57的第一个字节地址为 1282 。

2、三元素组表中的每个结点对应于稀疏矩阵的一个非零元素,它包含有三个数据项,分别表示该元素的 行下标 、 列下标 和 元素值 。

2. 理解数组的顺序表示方法会计算数组元素顺序存储的地址;填空题:1、已知A 的起始存储位置(基地址)为1000,若按行存储时,元素A 14的第一个字节地址为 (8+4)×6+1000=1072 ;若按列存储时,元素A 47的第一个字节地址为 (6×7+4)×6+1000)=1276 。

(注:数组是从0行0列还是从1行1列计算起呢?由末单元为A 57可知,是从0行0列开始!) 2、设数组a[1…60, 1…70]的基地址为2048,每个元素占2个存储单元,若以列序为主序顺序存储,则元素a[32,58]的存储地址为 8950 。

答:不考虑0行0列,利用列优先公式: LOC(a ij )=LOC(a c 1,c 2)+[(j-c 2)*(d 1-c 1+1)+i-c 1)]*L 得:LOC(a 32,58)=2048+[(58-1)*(60-1+1)+32-1]]*2=8950选择题:( A )1、假设有60行70列的二维数组a[1…60, 1…70]以列序为主序顺序存储,其基地址为10000,每个元素占2个存储单元,那么第32行第58列的元素a[32,58]的存储地址为 。

(无第0行第0列元素)A .16902B .16904C .14454D .答案A, B, C 均不对 答:此题(57列×60行+31行)×2字节+10000=16902( B )2、设矩阵A 是一个对称矩阵,为了节省存储,将其下三角部分(如下图所示)按行序存放在一维数组B[ 1, n(n-1)/2 ]中,对下三角部分中任一元素a i,j (i ≤j), 在一维数组B 中下标k 的值是:A .i(i-1)/2+j-1B .i(i-1)/2+jC .i(i+1)/2+j-1D .i(i+1)/2+j3、从供选择的答案中,选出应填入下面叙述 ? 内的最确切的解答,把相应编号写在答卷的对应栏内。

数据结构复习大纲

数据结构复习大纲

数据结构复习大纲第一章绪论1. 数据结构的基本概念和术语1.1 数据、数据元素、数据项、数据结构等基本概念1.2 数据结构的逻辑结构、存储结构及数据运算的含义及其相互关系1.3 数据结构的两大逻辑结构和四种常用的存储表示方法2. 算法的描述和分析2.1 算法、算法的时间复杂度和空间复杂度、最坏的和平均的时间复杂度等概念2.2 算法描述和算法分析的方法,对于一般算法能分析出时间复杂度第二章线性表1. 线性表的逻辑结构1.1 线性表的逻辑结构特征2. 线性表的顺序存储结构2.1 顺序表的含义及特点,即顺序表如何反映线性表中元素之间的逻辑关系2.2 顺序表上的插入、删除操作及其平均时间性能分析3. 线性表的链式存储结构3.1 链表如何表示线性表中元素之间的逻辑关系3.2 链表中头指针和头结点的使用3.3 单链表、双(向)链表、循环链表链接方式上的区别3.4 单链表上实现的建表、查找、插入和删除4. 顺序表和链表的比较4.1 顺序表和链表的主要优缺点4.2 针对线性表上所需要执行的主要操作,知道选择顺序表还是链表作为其存储结构才能取得较优的时空性能第三章栈和队列1.栈的逻辑结构、存储结构及其相关算法1.1 栈的逻辑结构特点,栈与线性表的异同1.2 顺序栈和链栈上实现的进栈、退栈等基本算法1.3 栈的“上溢”和“下溢”的概念及其判别条件2. 队列的逻辑结构、存储结构及其相关算法2.1 队列的逻辑结构特点,队列与线性表的异同2.2 顺序队列(主要是循环队列)和链队列上实现的入队、出队等基本算法2.3 队列的“上溢”和“下溢”的概念及其判别条件2.4 使用数组实现的循环队列取代普通的顺序队列的原因2.5 循环队列中对边界条件的处理方法3. 栈和队列的应用3.1 栈和队列的特点,什么样的情况下能够使用栈或队列3.2 表达式求值的算法思想,及栈变化情况。

第四章串、数组和广义表1.串1.1 串的有关概念及基本运算1.2 串与线性表的关系2.多维数组2.1 多维数组的逻辑结构特征2.2 多维数组的顺序存储结构及地址计算方式2.3 数组是一种随机存取结构的原因2.4 矩阵的压缩存储(对称矩阵、三角矩阵、稀疏矩阵)的表示方式和对应的地址计算方式。

数据结构复习要点(整理版)

数据结构复习要点(整理版)

第一章数据结构概述基本概念与术语1.数据:数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并被计算机程序所处理的符号的总称。

2。

数据元素:数据元素是数据的基本单位,是数据这个集合中的个体,也称之为元素,结点,顶点记录。

(补充:一个数据元素可由若干个数据项组成。

数据项是数据的不可分割的最小单位。

)3.数据对象:数据对象是具有相同性质的数据元素的集合,是数据的一个子集。

(有时候也叫做属性。

)4.数据结构:数据结构是相互之间存在一种或多种特定关系的数据元素的集合。

(1)数据的逻辑结构:数据的逻辑结构是指数据元素之间存在的固有逻辑关系,常称为数据结构。

数据的逻辑结构是从数据元素之间存在的逻辑关系上描述数据与数据的存储无关,是独立于计算机的。

依据数据元素之间的关系,可以把数据的逻辑结构分成以下几种:1.集合:数据中的数据元素之间除了“同属于一个集合“的关系以外,没有其他关系.2.线性结构:结构中的数据元素之间存在“一对一“的关系。

若结构为非空集合,则除了第一个元素之外,和最后一个元素之外,其他每个元素都只有一个直接前驱和一个直接后继。

3。

树形结构:结构中的数据元素之间存在“一对多“的关系.若数据为非空集,则除了第一个元素(根)之外,其它每个数据元素都只有一个直接前驱,以及多个或零个直接后继。

4.图状结构:结构中的数据元素存在“多对多"的关系.若结构为非空集,折每个数据可有多个(或零个)直接后继.(2)数据的存储结构:数据元素及其关系在计算机内的表示称为数据的存储结构。

想要计算机处理数据,就必须把数据的逻辑结构映射为数据的存储结构。

逻辑结构可以映射为以下两种存储结构:1.顺序存储结构:把逻辑上相邻的数据元素存储在物理位置也相邻的存储单元中,借助元素在存储器中的相对位置来表示数据之间的逻辑关系.2.链式存储结构:借助指针表达数据元素之间的逻辑关系。

不要求逻辑上相邻的数据元素物理位置上也相邻。

计算机专业基础综合数据结构数组和广义表历年真题试卷汇编3_真题无答案

计算机专业基础综合数据结构数组和广义表历年真题试卷汇编3_真题无答案

计算机专业基础综合数据结构(数组和广义表)历年真题试卷汇编3(总分66, 做题时间90分钟)6. 综合题1.数组A[1..8,一2..6,0..6]以行为主序存储,设第一个元素的首地址是78,每个元素的长度为4,试求元素A[4,2,3]的存储首地址。

【厦门大学1998五、1(5分)】SSS_TEXT_QUSTI2.数组A中,每个元素A[i,f]的长度均为32个二进位,行下标从一1到9,列下标从1到11,从首地址S开始连续存放在主存储器中,主存储器字长为16位。

求:(1)存放该数组所需多少单元?(2)存放数组第4列所有元素至少需多少单元?(3)数组按行存放时,元素A[7,4]的起始地址是多少?(4)数组按列存放时,元素A[4,7]的起始地址是多少?【大连海事大学1996四、1(6分)】SSS_TEXT_QUSTI3.假设按低下标优先存储整型数组A(一3:8,3:5,一4:0,0:7)时,第一个元素的字节存储地址是100,每个整数占4字节,问A(0,4,一2,5)的存储地址是什么? 【清华大学1996三】SSS_TEXT_QUSTI4.设有五对角矩阵A=(aij )20*20,按特殊矩阵压缩存储的方式将其五条对角线上的元素存于数组A[-10:m]中,计算元素A[15,16]的存储位置。

【东北大学1999一、2(4分)】SSS_TEXT_QUSTI5.数组A[0.8,1..10】的元素是6个字符组成的串,则存放A至少需要多少字节?A的第8列和第5行共占多少字节?若A按行优先方式存储,元素A[8,5]的起始地址与当A按列优先方式存储时的哪个元素的起始地址一致?【厦门大学2000五、3(14%/3分)】SSS_TEXT_QUSTI6.设m×n阶稀疏矩阵A有t个非零元素,其三元组表表示为LTMA[t+1),1..3],试问:非零元素的个数t达到什么程度时用LTMA表示A才有意义?【北京航空航天大学1998一、5(4分)】SSS_TEXT_QUSTI设有三对角矩阵(aij )n×n将其三条对角线上的元素逐行地存于数组B(1:3n一2)中,使得s[k]=ai,j,求:SSS_TEXT_QUSTI7.用i,j表示k的下标变换公式;SSS_TEXT_QUSTI8.若n=10 3,每个元素占用L个单元,则用B[K]方式比常规存储节省多少单元?【西安电子科技大学1996二、4(5分)】9.已知A为稀疏矩阵,试从空间和时间角度,比较采用两种不同的存储结构(二维数组和三元组表)完成求运算的优缺点。

《数据结构及其应用》笔记含答案 第四章_串、数组和广义表

《数据结构及其应用》笔记含答案 第四章_串、数组和广义表

第4章串、数组和广义表一、填空题1、零个或多个字符组成的有限序列称为串。

二、判断题1、稀疏矩阵压缩存储后,必会失去随机存取功能。

(√)2、数组是线性结构的一种推广,因此与线性表一样,可以对它进行插入,删除等操作。

(╳)3、若采用三元组存储稀疏矩阵,把每个元素的行下标和列下标互换,就完成了对该矩阵的转置运算。

(╳)4、若一个广义表的表头为空表,则此广义表亦为空表。

(╳)5、所谓取广义表的表尾就是返回广义表中最后一个元素。

(╳)三、单项选择题1、串是一种特殊的线性表,其特殊性体现在(B)。

A.可以顺序存储B.数据元素是一个字符C.可以链式存储D.数据元素可以是多个字符若2、串下面关于串的的叙述中,(B)是不正确的?A.串是字符的有限序列B.空串是由空格构成的串C.模式匹配是串的一种重要运算D.串既可以采用顺序存储,也可以采用链式存储解释:空格常常是串的字符集合中的一个元素,有一个或多个空格组成的串成为空格串,零个字符的串成为空串,其长度为零。

3、串“ababaaababaa”的next数组为(C)。

A.012345678999 B.012121111212 C.011234223456 D.01230123223454、串“ababaabab”的nextval为(A)。

A.010104101B.010102101 C.010100011 D.0101010115、串的长度是指(B)。

A.串中所含不同字母的个数B.串中所含字符的个数C.串中所含不同字符的个数D.串中所含非空格字符的个数解释:串中字符的数目称为串的长度。

6、假设以行序为主序存储二维数组A=array[1..100,1..100],设每个数据元素占2个存储单元,基地址为10,则LOC[5,5]=(B)。

A.808 B.818 C.1010 D.1020解释:以行序为主,则LOC[5,5]=[(5-1)*100+(5-1)]*2+10=818。

数据结构第五章数组和广义表

数据结构第五章数组和广义表

数据结构第五章数组和广义表(总6页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--第五章数组和广义表:习题习题一、选择题1.假设以行序为主序存储二维数组A[1..100,1..100],设每个数据元素占两个存储单元,基地址为10,则LOC(A[5,5])=( )。

A. 808B. 818C. 1010D. 10202.同一数组中的元素( )。

A. 长度可以不同 B.不限 C.类型相同 D. 长度不限3.二维数组A的元素都是6个字符组成的串,行下标i的范围从0到8,列下标j的范圈从1到10。

从供选择的答案中选出应填入下列关于数组存储叙述中( )内的正确答案。

(1)存放A至少需要( )个字节。

(2)A的第8列和第5行共占( )个字节。

(3)若A按行存放,元素A[8]【5]的起始地址与A按列存放时的元素( )的起始地址一致。

供选择的答案:(1)A. 90 B. 180 C. 240 D. 270(2) A. 108 B. 114 C. 54 D. 60(3)[8][5] B. A[3][10] [5][8] [O][9]4.数组与一般线性表的区别主要是( )。

A.存储方面B.元素类型方面C.逻辑结构方面D.不能进行插入和删除运算5.设二维数组A[1..m,1..n]按行存储在数组B[1..m×n]中,则二维数组元素A[i,j]在一维数组B中的下标为( )。

A. (i-l)×n+jB. (i-l)×n+j-lC.i×(j-l) D. j×m+i-l6.所谓稀疏矩阵指的是( )。

A.零元素个数较多的矩阵B.零元素个数占矩阵元素中总个数一半的矩阵C.零元素个数远远多于非零元素个数且分布没有规律的矩阵D.包含有零元素的矩阵7.对稀疏矩阵进行压缩存储的目的是( )。

A.便于进行矩阵运算B.便于输入和输出C.节省存储空间D. 降低运算的时间复杂度8.稀疏矩阵一般的压缩存储方法有两种,即( )。

数据结构考研真题 数组和广义表

数据结构考研真题 数组和广义表

第 5 章数组和广义表一、选择题为第一元素,其存1.设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11的地址为()。

【燕山大学 2001 一、2 (2储地址为1,每个元素占一个地址空间,则a85分)】A. 13B. 33C. 18D. 402. 有一个二维数组A[1:6,0:7] 每个数组元素用相邻的6个字节存储,存储器按字节编址,那么这个数组的体积是(①)个字节。

假设存储数组元素A[1,0]的第一个字节的地址是0,则存储数组A的最后一个元素的第一个字节的地址是(②)。

若按行存储,则A[2,4]的第一个字节的地址是(③)。

若按列存储,则A[5,7]的第一个字节的地址是(④)。

就一般情况而言,当(⑤)时,按行存储的A[I,J]地址与按列存储的A[J,I]地址相等。

供选择的答案:【上海海运学院 1998 二、2 (5分)】①-④: A.12 B. 66 C. 72 D. 96 E. 114 F. 120G. 156 H. 234 I. 276 J. 282 K. 283 L. 288⑤: A.行与列的上界相同 B. 行与列的下界相同C. 行与列的上、下界都相同D. 行的元素个数与列的元素个数相同3. 设有数组A[i,j],数组的每个元素长度为3字节,i的值为1 到8 ,j的值为1 到10,数组从内存首地址BA开始顺序存放,当用以列为主存放时,元素A[5,8]的存储首地址为( )。

A. BA+141B. BA+180C. BA+222D. BA+225【南京理工大学 1997 一、8 (2分)】4. 假设以行序为主序存储二维数组A=array[1..100,1..100],设每个数据元素占2个存储单元,基地址为10,则LOC[5,5]=()。

【福州大学 1998 一、10 (2分)】A. 808B. 818C. 1010D. 10205. 数组A[0..5,0..6]的每个元素占五个字节,将其按列优先次序存储在起始地址为1000的内存单元中,则元素A[5,5]的地址是( )。

数据结构数组和广义表

数据结构数组和广义表

数据结构05数组与广义表数组与广义表可以看做是线性表地扩展,即数组与广义表地数据元素本身也是一种数据结构。

5.1 数组地基本概念5.2 数组地存储结构5.3 矩阵地压缩存储5.4 广义表地基本概念数组是由相同类型地一组数据元素组成地一个有限序列。

其数据元素通常也称为数组元素。

数组地每个数据元素都有一个序号,称为下标。

可以通过数组下标访问数据元素。

数据元素受n(n≥1)个线性关系地约束,每个数据元素在n个线性关系地序号 i1,i2,…,in称为该数据元素地下标,并称该数组为n维数组。

如下图是一个m行,n列地二维数组A矩阵任何一个元素都有两个下标,一个为行号,另一个为列号。

如aij表示第i行j列地数据元素。

数组也是一种线性数据结构,它可以看成是线性表地一种扩充。

一维数组可以看作是一个线性表,二维数组可以看作数据元素是一维数组(或线性表)地线性表,其一行或一列就是一个一维数组地数据元素。

如上例地二维数组既可表示成一个行向量地线性表: A1=(a11,a12,···,a1n)A2=(a21,a22, ···,a2n)A=(A1,A2, ···,Am) ············Am=(am1,am2, ···,amn)也可表示成一个列向量地线性表:B1=(a11,a21,···,am1)B2=(a12,a22, ···,am2)A=(B1,B2, ···,Bm) ············Bn=(a1n,a2n, ···,amn)数组地每个数据元素都与一组唯一地下标值对应。

数据结构第五章 数组和广义表

数据结构第五章 数组和广义表

5.3.1
特殊矩阵
1、对称矩阵 在一个n阶方阵A中,若元素满足下述性质: aij = aji 1≤i,j≤n 则称A为对称矩阵。 a11 1 5 1 3 7 a21 a 22 5 0 8 0 0 a31 a32 a33 1 8 9 2 6 ……………….. 3 0 2 5 1 an 1 a n 2 a n 3 …a n n 7 0 6 1 3
第5章
数组和广义表
5.1 数组的定义
5.2 数组的顺序表示和实现
5.3 矩阵的压缩存储
5.3.1 特殊矩阵
5.3.2 稀疏矩阵
5.4 广义表的定义
5.1 数组的定义
数组-----线性表的扩展 A =(a0,a1,a2,…,an-1)
a00 a10 ┇ Am×n= ai0 ┇ am-1,0 a01 … a0j … a11 … a1j … ┇ ai2 … aij … ┇ am-1,2 … am-1,j … a0,n-1 a1,n-1 ai,n-1 am-1,n-1 α0 α1 ┇ Am×n= α i ┇ α m-1
Assign( &A, e, index1, ..., indexn) 赋值操作 初始条件:A是n维数组,e为元素变量,随后是n个下标值。 操作结果:若下标不超界,则将e的值赋给所指定的A的元 素,并返回OK。 对于数组来说一旦维数确定了,每个元素的下标确定了, 那么整个数组就确定了,这样的一个数组结构除了能改变 某元素的值,其他的不能再改变。
5.2 数组的顺序表示和实现
数组类型特点: 1) 只有引用型操作,没有加工型操作; 2) 数组是多维的结构,而存储空间是一个一维的结构。 有两种顺序映象的方式。
有两种顺序映像方法: 1)以行序为主序(行优先,先行后列):先存储行号较小 的元素,行号相同者先存储列号较小的元素;

数据结构讲义第5章-数组和广义表

数据结构讲义第5章-数组和广义表
对于一个矩阵结构,显然用一个二维数组来表示是非常 恰当的.但有时会遇到这样一类矩阵:在这种矩阵中有 许多值相同的元素或者是零元素,为了节省存储空间, 可以对这类矩阵进行压缩存储. 压缩存储是:为多个值相同的元素只分配一个存储空间: 对零元素不分配存储空间. 特殊矩阵:值相同的元素或者零元素在矩阵中的分布有 一定规律,则称此类矩阵为特殊矩阵,反之,称为稀疏 矩阵.
5.4 广义表
5)若广义表不空,则可分成表头和表尾,反之,一对表头和表尾 可唯一确定广义表 对非空广义表:称第一个元素为L的表头,其余元素组成的表称 为LS的表尾; B = (a,(b,c,d)) 表头:a 表尾 ((b,c,d)) 即 HEAD(B)=a, C = (e) D = (A,B,C,f ) 表头:e 表尾 ( ) TAIL(B)=((b,c,d)),
5.4 广义表
4)下面是一些广义表的例子; A = ( ) 空表,表长为0; B = (a,(b,c,d)) B的表长为2,两个元素分别为 a 和子表(b,c,d); C = (e) C中只有一个元素e,表长为1; D = (A,B,C,f ) D 的表长为4,它的前三个元素 A B C 广义表, 4 A,B,C , 第四个是单元素; E=( a ,E ) 递归表.
以二维数组为例:二维数组中的每个元素都受两个线性关 系的约束即行关系和列关系,在每个关系中,每个元素aij 都有且仅有一个直接前趋,都有且仅有一个直接后继. 在行关系中 aij直接前趋是 aij直接后继是 在列关系中 aij直接前趋是 aij直接后继是
a00 a01 a10 a11
a0 n-1 a1 n-1
a11 a21 ┇ a12 a22 ┇ ai2 ┇ … amj … amn … aij … ain … … a1j a2j … … a1n a2n β1 β2 ┇ βi ┇ βm
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构复习 (数组和广义表)
第5章 数组和广义表
一、数组 1、数组的顺序存储方式和地址计算方法 数组的存储方式有:
(1)行优先存储方式 (2) 列优先存储方式 例5-1 二维数组 int a[10][10], 以行优先存储, 第1 个元素 的首址是100, 每个元素的长度为2,求A[4][5]的存储首址。 A[4][5]的存储首址= 100 +(4*10+5)*2=100+45*2 =190
广义表 ls=(d1,d2,……,dn)。其中每个元素可以是原子, 也可以是子表。 称d1为表头,d2,……,dn为表尾。 n: 表示广义表的长度,括号层数表示广义表的深度。
2、广义表与线性表的区别
线性表(a1,a2,……,an)中每个元素都具有相同的类型, 有两种存储结构:顺序表和链表。 广义表(d1,d2,……,dn)中每个元素可以是原子,也可以 是子表。可以将广义表看作是线性表的推广。由于原子和子 表的类型不同,所以只能用链式存储结构。
2、特殊矩阵压缩存储存储及压缩时的下标变换
(1)对称矩阵和上(或下)三角矩阵的压缩存储。 例:下三角矩阵的存储,按行主序方式。 k=i(i+1)/2+j 当i>=j时 k= 0 当i<j时 a[i][j] 在一维数组s[k] 中(i>=j)或为0(i<j)。 (2)对角矩阵 例:以三对角矩阵为例,按行主序方式存储, 仅存储非零部分。 将一个a[100][100]的三对角矩阵以行主序存入一 维数组B[298]中,元素a[65][64]在B数组中的位置k等 于 。
3、稀疏矩阵的存储方式 ——三元组法 矩阵A中有非零元个数s远远小于矩阵元素的 i j v 总数,则称A为稀疏矩阵。
1 2 3 1 6 3 12 9 -3 14 24
M=
0 12 9 0 0 0 0 0 0 000 -3 0 0 0 0 14 0 0 24 0 0 0
1 3 3 4Βιβλιοθήκη 二、广义表 1、广义表的定义
3、广义表的链式存储结构
表结点 tag=1 hp tp 原子结点 tag=0 atom
例5-2:A=(( ),(e),(a,(b,c,d)))
相关文档
最新文档