滁州学院数据结构课件第二章 数组(C++语言版).pptVIP

  • 0
  • 0
  • 约1.48万字
  • 约 66页
  • 2019-05-06 发布于广东
  • 举报

滁州学院数据结构课件第二章 数组(C++语言版).ppt

作为抽象数据类型的数组 顺序表 稀疏矩阵 字符串 作为抽象数据类型的数组 一维数组 一维数组的示例 一维数组的特点 连续存储的线性表(别名 向量) 一维数组(Array)类的定义 #include iostream.h #include stdlib.h template class Type class Array { Type *elements; //数组存放空间 int ArraySize; //当前长度 void getArray ( ); //建立数组空间 public: Array( int Size=DefaultSize ); Array( const ArrayType x ); 一维数组公共操作的实现 行向量 下标 i 页向量 下标 i 列向量 下标 j 行向量 下标 j 列向量 下标 k 数组的连续存储方式 一维数组 三维数组 各维元素个数为 m1, m2, m3 下标为 i1, i2, i3的数组元素的存储地址: (按页/行/列存放) n 维数组 各维元素个数为 m1, m2, m3, …, mn 下标为 i1, i2, i3, …, in 的数组元素的存储地址: 线性表 (Linear List) 线性表的定义和特点 定义 n( ? 0)个数据元素的有限序列,记作 (a1, a2, …, an) ai 是表中数据元素,n 是表长度。 遍历 逐项访问: 从前向后 从后向前 线性表的特点 除第一个元素外,其他每一个元素有一个且仅有一个直接前驱。 除最后一个元素外,其他每一个元素有一个且仅有一个直接后继。 顺序表 (Sequential List) 顺序表的定义和特点 定义 将线性表中的元素相继存放在一个连续的存储空间中。 可利用一维数组描述存储结构 特点 线性表的顺序存储方式 遍历 顺序访问 顺序表(SeqList)类的定义 template class Type class SeqList { Type *data; //顺序表存储数组 int MaxSize; //最大允许长度 int last; //当前最后元素下标 public: SeqList ( int MaxSize = defaultSize ); ~SeqList ( ) { delete [ ] data; } int Length ( ) const { return last+1; } 顺序表部分公共操作的实现 template class Type //构造函数 SeqListType :: SeqList ( int sz ) { if ( sz 0 ) { MaxSize = sz; last = -1; data = new Type[MaxSize]; if ( data == NULL ) { MaxSize = 0; last = -1; return; } } } 顺序搜索图示 稀疏矩阵 (Sparse Matrix) 用三元组表表示的稀疏矩阵及其转置 稀疏矩阵转置算法思想 设矩阵列数为 Cols,对矩阵三元组表扫描Cols 次。第 k 次检测列号为 k 的项。 第 k 次扫描找寻所有列号为 k 的项,将其行号变列号、列号变行号,顺次存于转置矩阵三元组表。 扫描矩阵三元组表,根据某项的列号,确定它转置后的行号,查 rowStart 表,按查到的位置直接将该项存入转置三元组表中。 字符串 (String) 字符串是 n ( ? 0 ) 个字符的有限序列, 记作 S : “c1c2c3…cn” 其中,S 是串名字 “c1c2c3…cn”是串值 ci 是串中字符 n 是串的长度。 例如, S = “Tsinghua University” 字符串抽象数据类型和类定义

文档评论(0)

1亿VIP精品文档

相关文档