




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章 数组和广义表5.1 数组和广义表的定义5.2 数组和广义表的基本运算5.3 数组的存储结构5.1数组和广义表的定义
数组和广义表可以视为是线性表的扩展,即线性表中的数据元素本身也是一个数据结构。⒈二维数组定义
┌
a11a12
…a1n
┐
Amxn=│a21a22
…a2n││·
·││·
·│
└am1am2
…amn
┘(1)Amxn可定义为一个线性表A=(1,2,…,n),其中:每个数据元素j(j=1,2,…n)又是一个列向量的线性表,即:j=(a1j,a2j,…,amj),1≤j≤n
5.1数组和广义表的定义(2)二维数组Amxn可定义为一个线性表:A=(1,2,…,m)其中:每个数据元素j又是一个行向量的线性表,即:j=(aj1,aj2,…,ajn),1≤j≤m即A=(1,2,…,m)=((a11,a12,…,a1n),(a21,a22,…,a2n),…,(am1,am2,…,amn))┌
a11a12
…a1n
┐
Amxn=│a21a22
…a2n││·
·││·
·│
└am1am2
…amn
┘类似地,可以定义n维数组。5.1数组和广义表的定义(3)二维数组的形式定义2_array=(D,R)其中,D={aij|aijD0,i=c1,c1+1,…,d1,j=c2,c2+1,…,d2}R={ROW,COL}ROW={<ai,j-1,aij>|ai,j-1,aijD,c1id1,c2+1jd2}COL={<ai-1,j,aij>|ai-1,j,aijD,c1+1id1,c2jd2}D0为某个数据对象上述数组可表示为:A[c1:d1,c2:d2]维数:2第一维维长w1=d1-c1+1;第二维维长w2=d2-c2+1元素个数=w1*w2=(d1-c1+1)*(d2-c2+1)5.1数组和广义表的定义⒉广义表定义广义表可定义为:数据元素可以是表的线性表。
它的形式化定义为:Lists=(D,R)其中,D={di|di∈D0或di∈Lists,i=1,2,...,n,n0}R={N}N={<di-1,di>|di-1,di∈D,i=2,3,...,n}D0为某个数据对象5.1数组和广义表的定义广义表也称列表,记为:LS=(d1,d2,…,dn)LS为表名di∈D0时,称di为单元素(用小写字母表示);di∈Lists时,称di为子表(用大写字母表示);n为表的长度,当长度为0时称为空表;n>0时,第一个元素d1为表头;n>0时,(d2,…,dn)称为表尾。5.1数组和广义表的定义例:A=()B=(e)C=(a,(b,c,d))D=(A,B,C){即D=((),(e),(a,(b,c,d)))}E=(a,E){定义一个无限表(a,(a,(a,…)))}5.2数组和广义表的基本运算⒈数组的基本运算
⑴给定下标,存取相应的数据元素;⑵给定下标,修改相应的数据元素。⒉广义表的基本运算
⑴取表头函数HEAD(LS); ⑵取表尾函数TAIL(LS)。5.2数组和广义表的基本运算例:对C=(a,(b,c,d)),取出其中的cHEAD(TAIL(HEAD(TAIL(C))))第一步:((b,c,d))第二步:(b,c,d)第三步:(c,d)第四步:c5.3数组的存储结构数组的顺序存储结构
由于数组不作插入、删除操作,所以常采用顺序存储结构来实现数组,即用一组连续的存储单元,以行主(或列主)顺序依次存放数组的数据元素。(1)按行存放设每个数据元素占L个存储单元,di为第i维的下标上界,ci为第i维的下标下界,令wi=di-ci+1,则二维数组中任一元素a[i,j]的存储地址为:
Loc[i,j]=Loc[c1,c2]+((i-c1)*w2+(j-c2))*L5.3数组的存储结构三维数组中任一元素a[i,j,k]的存储地址为:
Loc[i,j,k]=Loc[c1,c2,c3]+((i-c1)*w2*w3+(j-c2)*w3+(k-c3))*Ln维数组中任一元素a[j1,j2,…,jn]的存储地址为:设数组A[c1:d1,c2:d2,…,cn:dn]
Loc[j1,j2,…,jn]=Loc[c1,c2,…,cn]+((j1-c1)*w2*w3*...*wn+(j2-c2)*w3*w4*...*wn
+…+(jn-1-cn-1)*wn+(jn-cn))*L5.3数组的存储结构令Loc[j1,j2,…,jn]=CONSPART+VARPART其中,CONSPART=Loc[c1,c2,…,cn]-CC=(c1*w2*w3...*wn+c2*w3*w4...*wn+…+cn-1*wn+cn)*L=((…((c1*w2+c2)*w3+c3)*w4+…+cn-1)*wn+cn)*LVARPART=(j1*w2*w3...*wn+j2*w3*w4...*wn+…+jn-1*wn+jn)*L=((…((j1*w2+j2)*w3+j3)*w4+…+jn-1)*wn+jn)*L5.3数组的存储结构(2)按列存放设每个数据元素占L个存储单元,di为第i维的下标上界,ci为第i维的下标下界,令wi=di-ci+1,则二维数组中任一元素a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 森林火灾应急救援队伍建设考核试卷
- 火力发电厂运行数据与智能决策技术应用考核试卷
- 汽车碰撞损伤评估与修复考核试卷
- 2025年输血科应急管理与质量控制计划
- 工程项目风险控制与应急措施
- 商场消防管理员的工作职责
- 全国中考语文备考趋势与计划
- 纺织行业生产异常解决流程
- 2025年部编版一年级语文下册教学计划优化策略
- 环境监测系统开发计划
- 烫伤不良事件警示教育
- 2025年腾讯云从业者基础认证题库
- 面试官考试题及答案
- 高中主题班会 预防艾滋珍爱健康-中小学生防艾滋病知识宣传主题班会课-高中主题班会课件
- (高清版)DB11∕T2316-2024重大活动应急预案编制指南
- 诊所规章制度范本
- 2025年日历表全年(打印版)完整清新每月一张
- 人工智能机器人研发合同
- 九年级自我介绍综评范文(4篇)
- 康复治疗下肢训练
- 四川省中小流域暴雨洪水计算表格(尾矿库洪水计算)
评论
0/150
提交评论