合工大考研数据结构课件(数组)

合集下载

数据结构第四章 数组

数据结构第四章 数组

4.2
数组的存储结构
通常采用顺序存储结构 顺序存储结构 以二维数组Amn为例
行优先 a00 a01 … a0(n-1) a10 a11 … a1(n-1) … a(m-1)0 a(m-1)1 … a (m-1)(n-1) 列优先
Loc(aij)=Loc(a00)+(i×n+j)×k
a00 a10 … a (m-1)0 a01 a11 … a (m-1) 1 … a0(n-1) a1(n-1) … a (m-1)(n-1)
0 0 -3 0 0 15 12 0 0 0 18 0 9 0 0 24 0 0 0 0 0 0 0 -7 0 0 14 0 0 0
(以转置运算为例) 以转置运算为例)
0 0 0 0 0 0
M
转置后
0 12 9 0 0 0
0 0 0 0 0 0
–3 0 0 0 14 0
0 0 15 0 18 0 24 0 0 0 0 -7 0 0 0 0 0 0
思路:反复扫描a.data中的列序,从小到大依次进行转置。 思路:反复扫描a.data中的列序,从小到大依次进行转置。 a.data中的列序
col
三 元 组 表 a.data (0, 1, 12) ③ 1 (0, 2, 9 ) ⑤ 0 (2, 0, -3) ① (2, 4, 14) (3, 2, 24) 1 (4, 1, 18) 0 (5, 0, 15) (5, 3, -7)
其中,sb[n(n+1)/2]中存放着常数 中存放着常数。 其中,sb[n(n+1)/2]中存放着常数。
三、稀疏矩阵的压缩存储
稀疏矩阵:设矩阵A中有s个非零元素, 稀疏矩阵:设矩阵A中有s个非零元素,若 远远小于矩阵元素的总数( s远远小于矩阵元素的总数(即s≦m×n), 则称A为稀疏矩阵。 则称A为稀疏矩阵。

合工大FORTRAN第7章

合工大FORTRAN第7章

几点特别说明:
⑴维说明符也可以放在数组名的后面。当一个说 明语句中DIMENSION后面有维说明符,数组 名的后面又有维说明符时,应以数组名后面的 维说明符为准。例如: INTEGER,DIMENSION(2:5)::A,B(0:5) 该语句定义了A、B都是整型一维数组,A的维 说明符是2:5,共有4个数组元素;B的维说明符 是0:5,共有6个数组元素。 ⑵数组名的命名规则与前面讲的变量名的命名规 则相同,它们不能与本程序单位中的任何名字 重名。一个数组名在本程序单位中只能被定义 一次。
例如:


同样下界1可以省略
INTEGER,DIMENSION(2,3)::A,B INTEGER,DIMENSION(1:2,1:3)::A,B REAL,DIMENSION(-1:1,2:4)::C,D 几点说明: ⑴ 对于一维数组的几点说明同样适合二维数组。 ⑵ FORTRAN规定数组的维数最大可以为7。 ⑶ 可以类似地定义三维数组。如: INTEGER,DIMENSION(2,3,2)::X
7.4 数组操作
7.4.1数组的赋值
⒈ 用赋值语句对整个数组赋值
如: INTEGER,DIMENSION(1:5):: A,B A=1 !对A的每一个元素都赋值为1 B=2 !对B的每一个元素都赋值为2
⒉ 用数组构造器对整个数组或数组部分元素赋值


数组构造器的一般形式为: ( / 取值列表 / ) 取值列表中可以包含若干个常量表达式或隐DO 循环。列表中常量表达式之间用逗号隔开,所 有值的类型都必须相同 。如: REAL,DIMENSION(10):: R INTEGER,DIMENSION(6):: A,C C=(/1,1,1,1,1,1/) R=(/(COS(REAL(I)*3.14159/180.0),I=1,10)/) A=(/ (I,I=1,6) / )

数据结构与算法-合肥工大(8)

数据结构与算法-合肥工大(8)

A[i, j]=
1 当顶点vi到顶点vj有边时
0 当顶点vi到顶点vj无边时 对于带权的图, 有
A[i, j]=
wij 当顶点vi到顶点vj有边,且边的权为wij
当顶o点ovi到顶点vj无边时
华电计算机系
North China Electric Power University
v1 v2
v4
Vertex1[1:4]
North China Electric Power University
第七章 图
华电计算机系
North China Electric Power University
★ 基本术语 ★ 图的存储结构 ★ 图的遍历 ★ 最小生成树和最短路径问题 ★ AOV网与拓扑排序 ★ AOE网与关键路径
华电计算机系
以顶点vi 为终止点的边的数目,记为ID(vi).
TD(vi) = OD(vi) + ID(vi)
v1
v1
v2
v3
v2
v3
v4
v4
华电计算机系
North China Electric Power University
结论1 对于具有n个顶点,e条边的图,有
n
2e = TD(vi) i=1
结论2 具有n个顶点的无向图最多有n(n-1)/2 条边.
<v2,v3>, <v4,v3> }
华电计算机系
North China Electric Power University
二.图的分类
无向图: 有向图: 网(络):
对于(vi,vj)E,必有(vj,vi)E,并且偶对中顶 点的前后顺序无关。 若<vi,vj>E是顶点的有序偶对。 与边有关的数据称为权,边上带权的图称为网络。

数据结构ppt课件完整版

数据结构ppt课件完整版

针对有序数据集合,每次通过中间元素将 待查找区间缩小为之前的一半,直到找到 元素或区间为空。
哈希查找
树形查找
通过哈希函数将数据映射到哈希表中,实 现快速查找。
如二叉搜索树、平衡树等,通过树形结构实 现高效查找。
排序算法分类及实现原理
插入排序
将待排序元素逐个插入到已排序序列中,直到所有元素均插入完毕。
由n(n>=0)个具有相同类型 的数据元素(结点)a1,a2,
...,an组成的有序序列。
同一性
每个元素必须是同一类型的数 据。
有序性
元素之间具有一对一的前驱和 后继关系,即除首尾元素外, 每个元素都有一个前驱和一个 后继。
可变性
线性表的长度可变,即可以插 入或删除元素。
顺序存储结构与链式存储结构比较
定义
用一段连续的存储单元依次存储线性 表的数据元素。
优点
可以随机存取表中任一元素,且存取 时间复杂度为O(1)。
顺序存储结构与链式存储结构比较
• 缺点:插入和删除操作需要移动大量元素,时间 复杂度高;需要预先分配存储空间,容易造成空 间浪费。
顺序存储结构与链式存储结构比较
定义
用一组任意的存储单元存储线性 表的数据元素(这组存储单元可 以是连续的,也可以是不连续的
查找操作
查找指定元素的位置。
遍历操作
访问线性表中的每个元素。
销毁操作
释放线性表占用的存储空间。
03
栈和队列
栈定义及特点
栈(Stack)是一种特殊的线性数据结构,其数据的存 取遵循后进先出(LIFO, Last In First Out)的原则。 栈的特点
具有记忆功能,能保存数据的状态。
栈的基本操作包括入栈(push)、出栈(pop)、查 看栈顶元素(top)等。 只能在栈顶进行数据的插入和删除操作。

数据结构(第八章图)DataStructures胡学钢张晶计算机与

数据结构(第八章图)DataStructures胡学钢张晶计算机与
算法在应用于非连通图,或者是某些有向图时, 某一次调用就不能保证访问到所有顶点。如下图所示。
12
3
5
4
1
2
4
7
9
3
6
5
6
8
合肥工业大学 计算机与信息学院
10
22
深度优先搜索遍历
为此,需要重新选择起点来调用算法。 如何选择新的起点? 起点应满足什么条件?
将对访问标志数组的赋初值运算, 以及选择起点的控制合在一起,
度=入度+出度。
1
2
3
4
图G1 有向图示例
合肥工业大学 计算机与信息学院
6
基本概念和运算
路径 ——若 顶点序列,,…,, 满足< ,()>∈或 者(,())∈)(,…), 则该顶点序列,,…, 构成一条路径。 例: 图中,是一条路径
1
2
3
4
图G1 有向图示例
简单路径 —— 中间经过的顶点不重复的路径。 例:图中,( ) ( ) ( ) 都是简单路径。
^
代表弧<>
^ ^ ^
^
16
图的遍历
图的遍历——访问图中所有顶点一次且仅且一次。 深度优先搜索遍历
图的两种遍历算法 广度优先搜索遍历
深度优先搜索遍历( )
这一问题求解包括几个部分。
. 基本算法
从顶点出发深度优先搜索遍历图的 ()描述如下:
() 访问;
() 依次从的未被访问过的邻接点出发深度遍历。
合肥工业大学 计算机与信息学院
构成对整个图的遍历算法如下: () {
(; <; ) [];
(; <; ) ([]) ();
}

数据结构课件PPT数组和广义表

数据结构课件PPT数组和广义表
T.mu=M.nu; T.nu=M.mu; T.tu=M.tu; if (T.tu)
{ q=1; for (col=1;col<=T.mu;++col) for(p=1;p<=M.tu;++p) if ( M.data[p].j==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; ++q; } }
(row) (col) (value)
[0] 1 4 22
[0] 1 5 91
[1] 1 7 15
[1] 2 2 11
[2] 2 2 11
[2] 3 6 28
[3] 2 [4] 3来自6 17 4 -6[3] 4 [4] 4
1 22 3 -6
[5] 4 6 39
[5] 6 2 17
[6] 5 1 91
[6] 6 4 39
cpot[1]=1 cpot[col]=cpot[col-1]+num[col-1]
稀疏矩阵的快速转置(算法5.2)
Status FastTransposeSMatrix(TSMatrix M,TSMatrix &T) { T.mu=M.nu; T.nu=M.mu; T.tu=M.tu;
if (T.tu) { for (col=1;col<=M.nu;++col) num[col]=0; for (t=1;t<=M.tu;++t) ++num[M.data[t].j]; cpot[1]=1; for ( col=2;col<=M.nu;++col) cpot[col]=cpot[col-1]+num[col-1]; for (p=1;p<=M.Tu;++p) { col=M.data[p].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]; } }

研究生入学考试数据结构第一讲课件

研究生入学考试数据结构第一讲课件
研究生入学考试数据结构第一讲
2.2 线性表的顺序存储
线性表顺序存储特点:
1. 逻辑上相邻的数据元素,其物理上也相邻; 2. 若已知表中首元素在存储器中的位置,则其他元素存放
位置亦可求出。计算方法是: 设首元素a1的存放地址为LOC(a1)(称为基地址), 设每个元素占用存储空间(地址长度)为C字节, 则表中任一数据元素的存储地址为:
研究生入学考试数据结构第一讲
1.1 数据结构的基本概念
4 数据结构(data structure):数据之间的相互关 系,即数据的组织形式。
一般包括三方面内容:
• 数据的逻辑结构—数据元素之间的的逻辑关系。
• 数据的存储(物理)结构—数据的逻辑结构在计算机存
储器中的表示。
(数据运算)
• 数据的运算—对数据施加的操作。
2 数据元素(Data element):数据的基本单位。 (又称为结点、顶点、记录)。 数据元素也可以由若干数据项(最小单位)构成。
例如:描述一个学生的数据元素
姓 名 学 号 班号性别 出生日期 入学成绩
年月 日
原子项
称之为组合项
研究生入学考试数据结构第一讲
1.1 数据结构的基本概念
3 数据类型(Data type):具有相同性质的计 算机数据的集合及在这个集合上的一组操作。
如:C语言中的整型变量int,值的范围是: - 32768 ~32767 操作是:+,-,*,/,%
原子数据类型:不可分解,由计算机语言提供. 如:C语言:int、float、char
结构数据类型:可分解,借用计算机语言提供的一种描述 数据元素之间的逻辑关系的机制,由用户自己定义.
如:C语言:数组、结构体、共用体

数据结构-合肥工业大学8

数据结构-合肥工业大学8

North China Electric Power University
平均查找长度:为确定某元素在表中某位置所进行的比 较次数的期望值。
在长度为n的表中找某一元素,查找成功的平均查 找长度:
ASL=∑PiCi
Pi :为查找表中第i个元素的概率 Ci :为查到表中第i个元素时已经进行的比较次数
North China Electric Power University
low mid high 因为r[mid].key=k,查找成功,所查元素在表中的序号为mid 的值
North China Electric Power University
2.查找关键字k=85 的情况 (1) low=1; high=11; mid=(1+11) div 2=6
05 13 19 21 37 56 64 75 80 88 92
2)块中的记录是任意排列的,则在块中只能用顺序查找。
分块查找的平均查找长度应该是前两者之和:
即: ASLbs=Lb+Lw Lb:为查找所在块的平均查找长度。
Lw:为块中查找元素的平均查找长度。
已知表的长度为n,分成b小块,每块有s个元素,那么 b=n/s.若表中各元素的查找概率相等,那么每块的查 找概率为1/b,块中每个元素的查找概率为1/s.
North China Electric Power University
2)折半查找(有序表上进行查找):
基本思想:设三个指针low,high和mid分别指示待查有 序表的表头,表尾和中间元素,在开始查找时,三个指 针的初值分别为: low=1;high=n;mid=(low+high)div 2。折半查找是 从表的中间元素开始,用待查元素的关键字k和 r[mid].key比较,此时有三种情况 (假设该查找表按关 键1)字若的r[非m递id减].k次ey序=排k,列则) 查:找成功;

第5章-数组ppt课件(全)

第5章-数组ppt课件(全)
②执行复制命令(Ctrl+C),将该控件复制;
③执行粘贴命令(Ctrl+V),将显示一个对话框,询 问“已经有一个控件为’Shape1’,是否创建控 件数组?”
④选择“是”,窗体左上角将出现一个控件,它就 是控件数组的第二个元素。
⑤执行粘切命令(Ctrl+V),建立控件数组的其它元 素。将其放在合适的位置并可用菜单栏的“格式”
外,还用到列表框(Llistbox)控件,这个控件及其 相关的内容将在本章作详细的讲解。 (2)编写代码时出现的 Dim Name(n) as string属于 数组的定义,具体相关数组的使用及有关概念是本 章的主要内容之一。 (3)排序交换数据时,应让姓名和成绩同时交换,若 只交换成绩,则最终结果会张冠李戴。
对其进行设置。
(2)编写代码
在窗体中只放置控件数组,而要输入对应的 标号需通过print方法来实现,对于Shape1控件 数组中各元素的形状由Shape控件的Shape属性 来完成,形状的填充由Shape控件的FillStyle属 性实现,具体的过程如下:
Private Sub Form_Click()
(2)编写代码使用了控件数组Shape1,注意掌握 创建数组控件的方法的使用,对于建立控件数组 的另一方法将在后面介绍。
5.2 数组
VB中将具有相同名字、不同下标值的一组变量称为 数组。数组中的每个变量称为数组元素或下标变量。可用 数组名和下标唯一地标识一个数组元素,如Score(5)就表 示数组名为Score的数组中下标为5的数组元素。一个数 组如果只用一个下标就能确定一个数组元素在数组中的位 置,则称为一维数组,而由两个或多个下标所组成的数组 称为二维数组或多维数组。在其它语言中数组用来存储相 同类型的数据,但是在VB中数组可用来存放不同类型的 数据。

数据结构课件ppt第二章

数据结构课件ppt第二章
答:由于顺序存储结构一旦确定了起始位置, 线性表中的任何一个元素都可以进行随机存 取,即存取速度较高;并且,由于线性表的 总数基本稳定,且很少进行插入和删除,故 这一特点恰好避开了顺序存储结构的缺点。 因此,应选用顺序存储结构。
3. 在单链表和双向链表中,能否从当前结点 出发访问到任一结点?
• 答:在单链表中只能由当前结点访问其后 继的任一结点,但因其没有指向前驱的指 针而无法访问其前驱结点。在双向链表中, 由于当前结点既有指向后继的指针,又有 指向前驱的指针,所以在双向链表中可以 由当前结点出发访问表中的任何一个结点。
data 0
1
a2
2
a1
3
4
a3
cursor 2 4 1
0
data 0
1
a2
2
a1
3
a4
4
a3
cursor 2 3 1
4 0




maxsize-1
maxsize-1
静态链表的C语言描述
//线性表的静态链表存储结构 # define MAXSIZE 100 //链表的最大长度 typedef struct {
D. 循环链表
答案:C,D
A,C,D
写出带头结点的双向循环链表L为空表的 条件:
空表 L
答案:(L==L->next)&&(L==L->prior)
判断题
1. 在具有头结点的链式存储结构中,头指针 指向链表中的数据结点。( )
2. 顺序存储的线性表可以随机存取。( ) 3. 在单链表中,要访问某个结点,只要知道
} DuLNode, *DuLinkList;
2. 循环链表

数据结构数组-PPT课件

数据结构数组-PPT课件

4.2 数组的顺序表示和实现
⑴行优先顺序——将数组元素按行排列,第i+1个行向量紧接 在第i个行向量后面。以二维数组为例,按行优先顺序存储的 线性序列为:
a0,0 a0,1 a0,2 a1,0 a1,1 a1,2
a0,0 a0,1 a0,2 a1,0 a1,1 a1,2
d
⑵列优先顺序——将数组元素按列向量排列,第j+1个列向量 紧接在第j个列向量之后,按列优先顺序存储的线性序列为:
a0,0 a0,1 a1,0 a1,1 a2,0 a2,1
a0,0 a1,0 a2,0 a0,1 a1,1 a2,1
d
4.2 数组的顺序表示和实现
例如,二维数组Amn按“行优先顺序”存储在内存中,假设每 个元素占用d个存储单元。 元素aij的存储地址应是数组的基地址加上排在aij前面的元 素所占用的单元数。因为aij位于第i行、第j列,前面i-1行一 共有i×n个元素,第i行上aij前面又有j个元素,故它前面一共 有(i×n+j)个元素,因此,aij的地址计算函数为: LOC(aij)=LOC(a00)+[i*n+j]*d (0≤i<m, 0≤j<n) a0,0 a0,1 … a0,n-1 a1,0 a1,1 … a1,n-1 Amn= … … … … am-1,0 am-1,1 … am-1,n-1 一个m×n的二维数组可以 看成是m行的一维数组,或 者n列的一维数组。
数据结构
数组
4.1 数组的定义
数组是我们最熟悉的数据类型,在早期的高级语言 中,数组是唯一可供使用的数据类型。由于数组中 各元素具有统一的类型,并且数组元素的下标一般 具有固定的上界和下界,因此,数组的处理比其它 复杂的结构更为简单

数据结构与算法-合肥工大(4)

数据结构与算法-合肥工大(4)

p↑.next:=s; ]
End;
华电计算机系
void Insert (Pointer &head, int i, ElemType x )在单链表的第i 个结点之前插入值等于x的结点。(C语言实现)
x=‘F’ i=3
p
Head
A
B
C
② F

S
void Insert (Pointer &head, int i, ElemType x )
华电计算机系
4)Locate_Link (Head,x):在单链表中查找值等于x的结点,返 回指向该结点的指针。(Pascal实现)
x=‘C’ Head
A
B
C
D^
p
Function Locate_Link(Head;x:ElemType):Link_list; Begin
p:=Head; while (p↑.Next< >Nil) and (p↑.data< > x) Do p:=p↑.Next; if p↑.data=x then Return(p) else Return(Nil); End;
{ head = new Node; if (!head) exit(1); // 存储空间分配失败 head->next = NULL;华电计算机系
}
2)Length_Link (Head):返回单链表中所含表结点的个数。Pascal实现
Function Length_Link(Head:Link_list):Integer; Begin
p↑.next:=Nil; End;
Procedure Create_Link_3(Var Head:Link_list); Begin

【全面版】数据结构数组与顺序表[课件资料]PPT文档

【全面版】数据结构数组与顺序表[课件资料]PPT文档
前i3列元素 个数

线性表 (Linear List)
§定义:n个数据元素的有限序列; n为线性 表的长度,当n=0时为空表。
§ 特点:
§ 除第一个元素外,其他每一个元素有一个 且仅有一个直接前驱。
§ 除最后一个元素外,其他每一个元素有一 个且仅有一个直接后继。
§ 原则上讲,线性表中表元素的数据类型可
§int maxSize;
§int size;
§Object[ ] listArray;
§private void initiate(int sz){
§
maxSize = sz;size = 0;
§listArray = new Object[sz]; }
§
public SeqList(int size){
0
1
变量 MaxSize
size
..
.
size-1 数组下标
操作算法
初始化操作 插入操作 删除操作 查找操作 排序操作 ......
...
...
MaxSize-1 •••
顺序表(SeqList)类的定义
§public class SeqList {
§final int defaultSize = 10;
i0
println("size3="+seqList.
pub若lic in搜t M索ore概Da率taD相ele等te(S,eqL则ist L, Object x) {
情况i发生的 概率
情况i时的比 较次数
print(seqList.
else return i;
n1
1 1 羽成宏蚜耍泊簧姥撰渐眶卫废垮胀景旋果逞渺也醚能气橙籽呜息茶硅揩来数据结构数组与顺序表数据结构数组与顺序表

数据结构-合肥工业大学 9

数据结构-合肥工业大学 9

North China Electric Power University
排序算法如下: 排序算法如下:
void insort(List r, int n) {//r为给定的表,其记录为 ,i=0,1,…,n,x为暂存单元。 为给定的表, 为暂存单元。 为给定的表 其记录为r[i], , , , , 为暂存单元 for (i=2; i<=n; i++) { r[0]=r[i]; //r[0]作为标志位 作为标志位 j=i-1; while (r[0].key<r[j].key) { r[j+1]=r[j]; j--; } //j从i-1至0,r[j].key与r[i].key进行比较 从 至 , 与 进行比较 r[j+1]=r[0]; } }//insort
northchinaelectricpoweruniversity内排插入类排序直接插入排序折半插入排序希尔排序直接插入排序折半插入排序希尔排序交换类排序冒泡排序快速排序冒泡排序快速排序选择排序排序选择类排序选择排序堆排序归并类排序归并排序其他排序计数排序基数排序计数排序基数排序northchinaelectricpoweruniversity92直接插入排序假设在排序过程中记录序列r1
North China Electric Power University
排序的时间分析: 排序的时间分析: 实现排序的基本操作有两个: 实现排序的基本操作有两个: 比较”序列中两个关键字的大小; (1)“比较”序列中两个关键字的大小; 移动”记录。 (2)“移动”记录。 对于直接插入排序: 对于直接插入排序: 最好的情况(关键字在记录序列中顺序有序): 最好的情况(关键字在记录序列中顺序有序): “比较”的次数: 比较” “移动”的次数: 移动” 比较 的次数: 移动 的次数:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
合肥工业大学 计算机与信息学院
a11 a21 a22 a31 a32 a33 … am1 am2 … amn
5
数组-三角矩阵的压缩存储
对称矩阵的求解方法同样使用于三角矩阵。
a11, a21,a22, a31,a32,a33, … …
0

m×n
am1,am2, am3,…,amn
合肥工业大学 计算机与信息学院
数据结构
Data Structure
合肥工业大学 计算机与信息学院
1
数组-定义和运算
1、定义: 数组:有限个相同类型的变量组成的序列。 若每个变量是一维数组,则为二维数组; 若每个变量是n-1维数组,则为n维数组。 2、运算: 给定一组下标,存/取数组元素的值; a11,a12,…,a1n ——计算元素的地址
合肥工业大学 计算机与信息学院
7
数组-稀疏矩阵的压缩存储
(二)稀疏矩阵的压缩存储: 数组中非零元素非常少,称为稀疏矩阵。
0 2 0 0 0 0 0 0 3 0 0 1 0 0 0 1 0 0 0 0 0 0 0 6 0 (1,4,1) (2,1,2ቤተ መጻሕፍቲ ባይዱ (2,3,1) (4,2,3) (4,5,6) (5,5,5)
a11 a21 …
am1 a21 a22 …
m×n
aij: 序号num= (j-1)*m+i
aij
地址:addr=addr0+(num-1)*c (其中c是元素的长度)
合肥工业大学 计算机与信息学院
am2 … a1n a2n … amn
4
数组-对称矩阵的压缩存储
(一)特殊矩阵的压缩存储(行优先): 1、对称矩阵 aij=aji
a11,a12,a13,…,a1n a21,a22,a23,…,a1n a31,a32,a33,…, a3n … … …
m×n
am1,am2, am3,…,amn
aij
aij: 序号num= 1+2+3+…+(i-1)+j
地址:addr=addr0+(num-1)*c (其中c是元素的长度) 下三角i>j
6
数组-对角矩阵的压缩存储
对角矩阵
a11, a12 a21,a22, a23 a32,a33, a34
0

n×n
0

ann-1 ,ann
aij 序号num = (3(i-1)-1)+(j-i+2)=2i+j-2 |i-j|<=1
a11 a12 a21 a22 a23 a32 a33 a34 … ann-1 ann
(a1, a2, a3, …, an)
a21,a22,…,a2n a31,a32,…,a3n … … … … am1,am2,…,amn
m×n
2
合肥工业大学 计算机与信息学院
数组-顺序存储(行优先)
1、行优先存储:
a11,a12,…,a1n a21,a22,…,a2n a31,a32,…,a3n … … … … am1,am2,…,amn
5×5
三元组
合肥工业大学 计算机与信息学院
8
a11 a12 … a1n a21 a22 … a2n … am1 am2 … amn
3
m×n
aij: 序号num= (i-1)*n+j aij 地址:addr=addr0+(num-1)*c (其中c是元素的长度)
合肥工业大学 计算机与信息学院
数组-顺序存储(列优先)
2、列优先存储:
a11,a12,…,a1n a21,a22,…,a2n a31,a32,…,a3n … … … … am1,am2,…,amn
相关文档
最新文档