数组和广义表PPT课件
- 格式:pptx
- 大小:415.52 KB
- 文档页数:57


一、填空题
1.通常采用___________存储结构来存放数组 。对二维数组可有两种存储方法:一种是以___________为主序的存储方式,另一种是以___________为主序的存储方式。
2. 用一维数组B与列优先存放带状矩阵A中的非零元素A[i,j] (1≤i≤n,i-2≤j≤i+2),B中的第8个元素是A 中的第_ _行,第_ _列的元素。
3.设n行n列的下三角矩阵A已压缩到一维数组B[1..n*(n+1)/2]中,若按行为主序存储,则A[i,j]对应的B中存储位置为_______。
4. 所谓稀疏矩阵指的是_ 。
5. 广义表简称表,是由零个或多个原子或子表组成的有限序列,原子与表的差别仅在于____ 。为了区分原子和表,一般用 ____表示表,用 _____表示原子。一个表的长度是指 __,而表的深度是指__ __
6、设数组a[1..50,1..80]的基地址为2000,每个元素占2个存储单元,若一行序为主序顺序存储,则元素a[45,68]的存储地址为 ;若以列序为主序存储,则元素a[45,68]的存储地址为 。
7、有一个8ⅹ8的下三角矩阵A,若采用行序为主序顺序存储于一维数组a[1..n],则n的值为 。
8、三元素组表中的每个结点对应于稀疏矩阵的一个非零元素,它包含有三个数据项,分别表示该元素
的 、 和 。
9、已知广义表A=(((a))),则A的表头为: ,A的表尾为: 。
河 南 大 学
本科课程教学进度计划表
20 — 20 学年度第一学期
学 院: 软件学院 教研室(系): 软件工程系
主讲教师: 职 称 :
课程名称: 数据结构
课 程 编 号: 04516017
授课专业及年级: 总 学 时: 96 学时
填表日期:20 年 月 日
河南大学本科课程教学进度计划表周
次 日期 章 节 内 容 提 要 教学形式及学时分配
教学手段 执行
情况 备
注 讲授 实验 实习 其他
1 至
第1章 绪论
(1) 什么是数据结构
(2) 基本概念和术语
(3) 抽象数据类型的表示和实现
(4) 算法和算法分析
第2章 线性表
(1) 线性表的类型定义
归并算法的讲解 4 2 多媒体教学
课件演示
2 至
第2章 线性表
(2)线性表的顺序表示和实现
顺序表的定义
顺序表的基本操作实现 4 2 多媒体教学
课件演示
3 至 第2章 线性表
(3)线性表的链式表示和实现
线性表的链式表示和特点
链表的基本操作
其他形式的链表
(4)一元多项式的表示及相加 4 2 多媒体教学
课件演示 河南大学本科课程教学进度计划表(续页)
周
次 日期 章 节 内 容 提 要 教学形式及学时分配
教学手段 执行
情况 备
注 讲授 实验 实习 其他
4 至 第3章 栈和队列
(1)栈
● 栈的定义和特点 ● 栈的表示和实现
(2)栈的应用举例
● 数制转换 ● 表达式求值 4 2 多媒体教学
课件演示
5 至 第3章 栈和队列
第 5 章 数组和广义表
一、选择题
1.设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,
a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地
址为( )。【燕山大学 2001 一、2 (2分)】
A. 13 B. 33 C. 18
D. 40
2. 有一个二维数组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.
120
G. 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+141 B. BA+180 C. BA+222
D. BA+225
【南京理工大学 1997 一、8 (2分)】
4. 假设以行序为主序存储二维数组A=array[1..100,1..100],设每个
数据元素占2个存储单元,基地址为10,则LOC[5,5]=( )。【福
州大学 1998 一、10 (2分)】
A. 808 B. 818 C. 1010
D. 1020
5. 数组A[0..5,0..6]的每个元素占五个字节,将其按列优先次序存储
《数据结构》实验报告
实验序号:7 实验项目名称:数组和广义表
学 号 姓 名 专业班级
实验地点 指导教师 实验时间
一、实验目的及要求
本次实验目的是通过上机练习,熟悉和掌握课堂所讲授的基本知识点。要求上机以前要认真复习课堂教学内容。完成稀疏矩阵的三元组顺序存储。
二、实验设备(环境)及要求
计算机;学生不许把食物带到机房吃;不许上网做与实验无关的内容;不许同学之间聊天;保持实验室安静卫生。下课把键盘,座椅放回原处。
三、实验内容与步骤
稀疏矩阵压缩存储,三元组顺序表的实现。然后完成操作 CreateSMatrix(&M)创建稀疏矩阵,和求稀疏矩阵的转置TransposeSMatrix(TSMatrix &M, TSMatrix &T)。编写一个函数,按照矩阵的形式打印出稀疏矩阵。
Header.h
#include
#include
//稀疏矩阵的三元组顺序表存储
#define MAXSIZE 125 //非零元个数的最大值
typedef int ElemType;
typedef struct//三元组节点
{
int i,j;//非零元的行下标、列下标
ElemType e;//矩阵的元素值。
}Triple;
typedef struct
{
Triple data[MAXSIZE+1];//非零元数组,data[0]不用。
int mu,nu,tu;//矩阵的行数、列数、非零元个数。
}TSMatrix;
//-------稀疏矩阵的操作函数-------//
void CreateSMatrix(TSMatrix *M)
//以行为主序,创建稀疏矩阵
{
char sign='y';
int tu;
(*M).tu=0;(*M).mu=0;(*M).nu=0;
printf("请输入矩阵的行数:\n");
scanf("%d",&(*M).mu);