一维数组多维数组线性表顺序表多项式稀疏矩阵字符串.ppt

一维数组多维数组线性表顺序表多项式稀疏矩阵字符串.ppt

一维数组多维数组线性表顺序表多项式稀疏矩阵字符串.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; } } } 顺序搜索图示 多项式 (Polynomial) n阶多项式 Pn(x) 有 n+1 项。 系数 a0, a1, a2, …, an 指数 0, 1, 2, …, n。按升幂排列 多项式(Polynomial)的抽象数据类型 创建power类,计算x的幂 多项式的存储表示 第一种: private: (静态数 int degree; 组表示) float coef [maxDegree+1]; Pn(x)可以表示为: pl.degree = n pl.coef[i] = ai, 0 ? i ? n 两个多项式的相加 结果多项式另存 扫描两个相加多项式,若都未检测完: 若当前被检测项指数相等,系数相加。若未变成 0,则将结果加到结果多项式。 若当前被检测项指数不等,将指数小者加到结果多项式。 若有一个多项式已检测完,将另一个多项式剩余部分复制到结果多项式。 稀疏矩阵 (S

文档评论(0)

1亿VIP精品文档

相关文档