第五章 数组和广义表

更新时间:2023-07-20 13:52:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

数组和义广表数的组定义数组的顺序表和示现实矩阵的缩存储压义表广的义定广表义存的结储构义表的递广归算法福州大学至诚学院

组的数象抽据类数型定的义ADTrrAya{据数对:D=象a{j 12 j…n| jij 0, .=.,. b -i1,i= 1, 2,., .n,

n>,0称为数组维的数,bi是数第组 i的长度,维i是数j组元的素第 i下维标 a, j 1j2… j∈EnlmSete}据数系关R=:{R1,R,2 ..,.Rn}R i{<a=j1...i..jj.n,aj1. ..ji1...j+>n 0≤jk|≤kb-, 11k≤n且≤≠k, i≤0ijbi≤ -2, a1…jijj… n,aj 1ji…1+…n∈Dj, i=2,. ., n .}州福学大至学院诚

基操作本:In itrArya&(A n,, obudn, 1.., bo.udn)n操作结:若果数维n和各长度合维,法构造相应则的数 A,组并返回KO Dest。roAyrar(yA)&操作结:果毁数销组A。Valeu(A,e&,i ndx1, e... inde,n)x初始条:A件是n维数组e,元素为量变随后, n个是标下。操作结值:果若各下不标界,则 e超赋为所值指的A的定元值素,并返回 OK。 ssAgi(n&A, e, nide1x,. ..,niedn)x初始件条:A是n数维组,e为元素变,随量是后 n个下标值。操结作:果若标下不超界则,将的值e给赋所指的定的元A,素返并回OK。 A}D ATrary福州学大至学院诚

元素个数组:1*bb2*3…bb n个每元素都着n受个关系约束的每个关,系中都有一个直接后继元素。因此当就个系关而言这n,关系仍然是属于线个关系性。

例如:二维数组抽象的数类据型数据的对象数据关和系定义的数据象对 D=:{a ij| 0≤ i≤ 1 - 1,b 0≤ j≤ b2 -1}数据系关:= R{RO W,C OL} ORW={< ai, j, a i1, j+>|0 ≤ i≤b1 - 2, 0≤j≤ b 2-1} COL={<a, ij,i, aj+ 1|>0≤ i≤ b 1-1, 0 j≤≤2 - 2}

b州福学至诚大院学

数组义:定一按格定排列式来的具起相同有型的类数据元素的集合。维一组数线:表中性数据元素为的非构结简的元单。逻辑结构为线素结构。例性:A如n]=[(0a,a1a,,2…a,-n) 1ai∈Atosetm维数组二一:数维中的数组元据素是一又维数组构。例结:如a10a02 L a 0n,1 a0 0 a a 1 a112L a 1, 1 1n0 A×n= m M M M M a m , 0 a1m 1 1,am 1 2, Lma 1,n 1 -m1)A=(α,α01…,, p) (pα n=1-)

i=(aα0i,ai,,1…,,ma-1j,) 0)i≤≤m1- jα=a(j a0j1…,,i-1 n≤j0≤-n福1大州至学诚院

学 C在语言中一,二维个数组类也型以定义可一为数组维型类(其量分类为一维型数类组),即型: yptdef eeemlytepa rrya2[m][]; ntpydefeel meypte arry1[a]; ntyepefdar ray a1rary[m2;]三数组:维若二数组维的元素中又是个一一维组结构数

n。数组维若n:1维-数中组的素又元一是个维数组结一。构州福学大诚至学院

组数特:点构固结——定定义后,数和维维界不再改。变组数基操作本除了:结构的初始和化销毁外之只有,元取素修改元和值素的作操。

论结性线结构是数组结表构的一特个例,数而结组构是又线表结性构扩的展。

福州…学至大学诚

院5

.2为因

组的顺序数示和表实现数组点特结构:固定—维—和维界数不变数。基组操作本初始化、销毁:取元、素、修元改素。值般一不做插入删和操除。作所以:般都一采是顺序存储用构来结表示数。组注:数组意以是多可维的,存但数储据元素的内存元单址地是维一的,此因在,存数储组构结前之需,要决将解维关系多射到映维关一的问系题。以行序主为序(下低优标先)两种顺序储存方式以列为主序序(下标优先)高福州学至诚大学

院a

00a 01 00 a0a…1…. .a, n-1…0… a10 a1.……..1a,1 n-1a 0, -n 1n 1 -……………….…1a n0a -1, m0a -m1,…….. am-11,n -1 a1 1….…二维数组.任一中元素aij的存储置位 1a n-1,LOC (,ij)= LO C0(, 0)+ b(×i+2j)×L………二.数维的映组函象数基地址基址或ma-,1 0ma1-,某个1素元地的就是它址前面所行所有占单的加上它所在行前面所元列元有….….m n*-1所素占的元数之单和 a。-1,mn州福大学诚学至院以序行主为存序:放

10

1

按列序主为存序放 01m -1ma00 a1

a01…0..…a,0 n-1a 11…….. a1 n,1 -………………. am…-1 0,a-1m,1……..a -1,m -n1二维数组中任一元素a ij的储存位置LCO(i,j )=OLC0( 0, )+ (b×j+i 1×)某L元素的地址就个它前是所有列面所占的单加上元所在它前列面所行元有素占的所元数之单。和福州大学诚至院学mn* 1-a00a1 0….…m-1, 0aa 10 a1 1……. am.-1,1………. 0a,-n 1a, 1-n1…….. ma1, -n-1

般一n数组维列主的元储存地址算计公式b,b2,1..,b.nn是的维界,维组元素A数(1,jj,2...,nj)的存储位置为LO[j1,C2,j..j.n=]OLC0[0,.,.,0].+ (2bb.3..nj1+ b3..bb.n2+ .j.... . b+nnj-1LO Cj1,(j 2,..,. j )n L=CO(00,...,0,+)j∑ L in j i+) c其中 nc= L,c i-= 1ib c×i,1< i≤ n-1 nn。 =LO[0C0,.,.,0.]+(j∑∏bik+ nj)称为 n维数组的映象数。函数元组素的储存位置是其标L下线的性函数。州大福至诚学院学i=1

k=i1

例1:+C在言语,中数组A[设][5]67[]8[的首地]为址200,0个元每占素个字2节求元素A;3][[4[]]54[的地]址LOC[.,435,4,=]=== 0002+6(**783+*7* 84+ *8* 5 4)*2+ 200+0( 363* 3+6*45+ 85* 1*4)*2 2+00+0 1(008+22+440+ 4)* 245 25福州大至学诚院

学列

为主序: (序OFRRTN)AAmxn=((a1,12a1a3,,..1am1).(a1,2a2,,232,a...m2),a. ..(1n,aan2a,n3,...anm)) OLC[,1]为基1地:址LO Ci[j]=,L C[1,1O] (m*+j-1)(i+-)1* L(1<=<=m, i1<j==<, n个数据元每素L占个存单储元 )LCO[,0]0为基址:地L COi,[j=]L CO[00],+(*j+m)i* L(0<=<=mi,0=j<=n<,个数每元据占L素个存单元)储OL[Cij,,]= LOk[0,0C,]0+(*m*k+nm*j+i

)*L

福州大学诚学院

至例:2a1 1a21 3a 141aa12 a13 22a 2a3a3 2a33 a4 a423a4 a214 a34a 44a15a 2 a355 4a5若 L=, 2OL[1,C]1= 1 00 L0OC[,34]=LO[1,C]+ 14*(4-()+1-31)*L= 1 000+1 *42= 0128福州学大至诚院学

3:一个维二组数,行下A的标围是范到 16列,下标的范围是 0到,每个7数元组用相邻素 6的字个存节储,储器存按字编址。节那么这个数,的组体是 2积88节。字答:V luoe= mm××L=n(– 1+61 )× ( 7–+0 )×1= 46×6=82 88个

州大福至学诚学

院例:设4数组A[…590,…69]的基0址地为2480,个每素占元 2存储个元,若以列单为主序序序存顺储,则元素A 31[,5 7]的存。地储址为8 509解 L:O(i,C )j= LO C(3,1 57) LO=(0C 0), (+b1j+×i )×L= 042 8+ (0657+×3 )×12=8950a00 a0 1…a, 09 6a1 0a11… a1 69…,………………… 31a 57,…………………a5 9,0 a5, 19… a 5, 99

6福州大学至学诚院▲

组顺数序存的表示储和现实#inluces<s tadgr.> h#deinef AX_ARRAYMDIM _8 tpyeedfs turc t{leETymep* bsa;e in tdim;in *tbundo; isnt *onctasts; nA}ray;r bae dsi mobnusd ocsntnat0s 1...a0 1diam1-

.. ....

.. a. .i. .ta福大学州诚至学

IitnrAar(Ayrary&,Ai t nim, ...d;)//维若数imd和后随的数合维,构造法相的应数,并返组回O DeKsrtoAyrrya A(rray& );A//销毁组A Valu数e(rAar Ay,leEmyTe&e,p ...;/)若/下标不各界,超则赋e值为指定所A的的元素,并返回OK值As sig(Arnra y&A, EelmTpyee, ..).//各下标不超界,若则e将的赋值所给指的A定的元素,并返 O回K福大州学诚至学院

Stats IuniAtrayrAr(ayr& A,itnd mi .,..){av_litsap i;(fidm<||1dim> MA_AXRRAYDIM_)r turenERR RO;A. dmi= di m A;.oundsb= (in t * ma)llo(cdmis*ieofz(ni)t;)i (!fA.bunos) edit(OVxRFLEOW;)e letotmla=;1 v_staart(a, pdmi; fo)ri(=0;<dimi;+i+){A.b ouns[id=]v_arg(aa,pint; )i(A.bfuods[ni]< 0) erurn UNtEDFROW; eLeltmotla=* .bAoudns[]i};va_ ednap)( A;.bsa=(eElemype *)Talmol(eclmtetoal*si ezfo(lemETpye);)i (!fAbase. e)xi(OtEVRFOW)L A.;cosntnats=in( t*)mllaco(imd* si ezofi(nt);) f(iA.!onctsnats e)it(xVERFLOOW);A. ocsntatnsd[i-1m=] 1;fr(oid=i-2;mi=0;>--i A.c)onstatn[si]= A b.onusdi[+]1 A*c.nstoans[ti1]+;州福学至大诚学 r院etunr OK;

组数顺序存储表示和的实现rArya[5A[6][]7]8[]

b;as eidm(4) boudn conssantts 1 023

0x6x578x 185

678

36356elmettol-1a

福大州学诚学至院

本文来源:https://www.bwwdw.com/article/yh31.html

Top