- 1、本文档共72页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
chap04数据结构数组、串与广义表
第四章 数组、串与广义表
一维数组(向量)
1.逻辑结构:L= (a ,…a ,a ,…,a )
1 i-1 i n
2.存储结构:
int A[MaxSize];
• 问题:如何求一维数组中第i元素的起始地址
(Loc(ai)=?).
• 序号为i的元素起始地址=序号为1的元素起始地
址+(i-1)*每个元素所需的空间
二维数组(矩阵)
1.逻辑结构
2.存储结构
int A[m][n];
在计算机内存中的存储方式
• 二维数组A[m][n]可以看成:
(1)由m个具有n个元素的线性表组成。
(2)由n个具有m个元素的线性表组成。
(1)由m个具有n个元素的线性表组成。
(2)由n个具有m个元素的线性表组成。
• 问题:如何求二维数组Amn中第ij元素的起始地
址(Loc(aij)=?).
• 二维数组的存储方法有多少种?
• 每种存储方法的特点是什么?
• 在每种存储方法中Loc(aij)=?
三维数组
• 1.逻辑结构—— 立体
• 2.存储结构:
int A[m]n][k];
• 问题:如何求三维数组Amnl中第ijk元素的起始
地址(Loc(aijk)=?).
• 三维数组的存储方法有多少种?
• 每种存储方法的特点是什么?
• 在每种存储方法中Loc(aijk)=?
N维数组
• 问题:如何求n维数组Am m …m 中第i i …i 元
1 2 n 1 2 n
素的起始地址(Loc(a i i …i )=?).
1 2 n
• n维数组的存储方法有多少种?
• 每种存储方法的特点是什么?
• 在每种存储方法中Loc(a i i …i )=?
1 2 n
• 特殊矩阵
1.对称矩阵
2.上三角矩阵
3.下三角矩阵
• 1.对称矩阵的存储及存储地址的计算方法
• (1)存储方法有多少种?
• (2)每种存储的存储地址的计算?
• 1.三角矩阵的存储及存储地址的计算方法
• (1)存储方法有多少种?
• (2)每种存储的存储地址的计算?
• 稀疏矩阵
• 什么是稀疏矩阵?
• 表示一个矩阵中元素的要素有哪些?
•
• 稀疏矩阵的存储结构
• 1、三元组表
struct RCV 稀疏矩阵顺序存储类定义
{ int row,col;
float value;
};
class SMatrix
{ RCV *item;
int r,c,num;
public:
SMatrix(){ item=NULL; r=0; c=0;num=0; }
SMatrix( RCV a[], int n, int row,int col); //a[]是一个三元组
SMatrix tran();
SMatrix tran1();
SMatrix plus(SMatrix b);
SMatrix mult(SMatrix b);
void prnt();
};
稀疏矩阵类的构造函数
第一种形态无参数,仅创建一个空的三元组表。
第二种形态设置三元组表a,长度n及行数row 、列数col 四个参
数,创建的三元组表由参数a、n确定,而行数、列数分别由
参数row、co
文档评论(0)