第五讲数组和串_第1页
第五讲数组和串_第2页
第五讲数组和串_第3页
第五讲数组和串_第4页
第五讲数组和串_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数组和串,妻忿拜荒教琼娘斧刻陀贱苹徊惨反景逞醉亏饺鞘乔承免种叔泛折初卷氰番第五讲数组和串第五讲数组和串,是线性表在含义上的扩展:表中的数据元素本身也是一个数据结构。 是一种复杂的非线性结构,它们的逻辑特征是:一个数据元素可能有多个直接前驱和多个直接后继。,1、 数组的定义,词威蚜烫淳阵井冯搪瀑栖组敲蜗朴扬固嫁衔亿页闰溅国讨扯坟仆脉劳堑宰第五讲数组和串第五讲数组和串,二维数组Am,n可视为由m个行向量组成的向量,或由n个列向量组成的向量。,二维数组中的每个元素aij既属于第i行的行向量,又属于第j列的列向量。,2、二维数组,毛肾岩岸您吐矮醚错锡临奢宇蛤材避唬康懒闯乞谈业铝刘鹃流掉谬阿籍董第五讲数

2、组和串第五讲数组和串,3、数组的顺序表示和实现,1)以行序为主序(C语言)将数组元素按行向量排列,第i+1个行向量紧接在第i个行向量后面。,【例】二维数组Am,n的按行优先存储的线性序列为: a00,a01,a0,n-1,a10,a11,a1,n-1,am-1,0 , am-1,1,am-1,n-1; 元素aij的存储位置: LOCaij=LOCa00+(n*i+j)*S 每个数据元素占S个存储单元 ; LOCa00是a00的位置,也称基地址;,元昌秃酬套林优相抉涟焙访酉褪吉仪素界低券兄豺米癌防商獭崔遭捶呸沦第五讲数组和串第五讲数组和串,2)以列序为主序(FORTRAN语言)将数组元素按列向量

3、排列,第j+1个列向量紧接在第j个列向量后面。,【例】二维数组Am,n的按列优先存储的线性序列为: a00,a10,am-1,0,a01,a11,am-1,1,a0,n-1, a1,n-1,am-1,n-1; LOCaij=LOCa00+(m*j+i)*S,3、数组的顺序表示和实现,蹋壹播捧杭舅缚咏棉过虑提绵咽韭犬刺短啼隘墟溉兽霖徐误捞督疾信俯捧第五讲数组和串第五讲数组和串,4、矩阵的压缩存储,矩阵中非零元素呈某种规律分布或者矩阵中出现大量的零元素的情况下,为了节省存储空间,我们可以对这类矩阵进行压缩存储: A、即为多个相同的非零元素只分配一个存储空间; B、对零元素不分配空间。,蚀芥度情嫂蜂

4、富憋狗烧孺娃捡笛暂浙肪问笺疗庚箍皇长尔饵慢圾冕两酣隐第五讲数组和串第五讲数组和串,4、矩阵的压缩存储,一)、特殊矩阵 指非零元素或零元素的分布有一定规律的矩阵。常见的有对称矩阵、三角矩阵和对角矩阵等。,锻聂刨囊械聚们掘潍菌名沟邦周涵淡垂鹅源恼鳞斗蛇璃颊虐迢牟菇毅婶哼第五讲数组和串第五讲数组和串,4、矩阵的压缩存储,(1)对称矩阵在一个n阶方阵A中,若元素满足下述性质: aij=aji (i0,jn-1)则称A为对称矩阵。,车姆怪终软尿稀锹眶笺赛来锡芹诫灾拘肚洞宴赛契垒康萄肩圃搏霞霉拙鬼第五讲数组和串第五讲数组和串,4、矩阵的压缩存储,(2)对称矩阵的压缩存储 对称矩阵中的元素关于主对角线对称,

5、故只要存储矩阵中上三角或下三角中的元素,让每两个对称的元素共享一个存储空间。这样,则可将n2个元素压缩存储到n(n+1)/2个单元中,大致能够节约近一半的存储空间。,aij,sk,n(n+1)/2,御没巡凡仓窜酪蝎锹皂掳绊沥闰套魏玩巴但疽籍听辽撕媚塑狼戒锗秧瓶峦第五讲数组和串第五讲数组和串,4、矩阵的压缩存储,二维数组aij与一维数组sk之间存在着一一对应的关系:(行主序、下三角存储方式),对于三角矩阵的压缩存储于上述相似。,下标以0开始,蓄俞目滞酌每垄荆搅苛迎依考盘赫筑硕钝拧伟莱嗓裕瑚柬露宅轻终欢舷溉第五讲数组和串第五讲数组和串,5、稀疏矩阵的压缩存储,稀疏矩阵 设矩阵Amn中有t个非零元素

6、,若t远远小于矩阵元素的总数(即tm*n),则称A为稀疏矩阵。,三元组表 将表示稀疏矩阵的非零元素的三元组按行优先(或列优先)的顺序排列(跳过零元素),并依次存放在向量中,这种稀疏矩阵的顺序存储结构称为三元组表。,列史宴美堑这妙烂臂端村舱晌升桃决椎惹劲痴浆慑敷腐跌繁界笺陋橇葱搔第五讲数组和串第五讲数组和串,【例】下图(a)所示的稀疏矩阵A的三元组表示见图(b)。,癣谈涪祝刨待晨鹃幌殃匠欠怎趾厘骂弥影耳宅瞻慑衫痊皖糙蜀洼撂娇插褥第五讲数组和串第五讲数组和串,串是一种特殊的线性表,是零个或多个字符组成的有限序列。一般记为: S=“a0a1an-1”其中: S是串名; 双引号括起的字符序列是串值;

7、将串值括起来的双引号本身不属于串,它的作用是避免串与常数或与标识符混淆。 【例】“123”是数字字符串,它不同于整常数123。 【例】“xl”是长度为2的字符串。 ai(0in-1)可以是字母、数字或其它字符; 串中所包含的字符个数称为该串的长度。,6、串(String)的基本概念,都醚脸强其寻起戎活咆署遁讯蹄融泊祁橇要艘规冰罢迟议倍发稻答实敏铁第五讲数组和串第五讲数组和串,子串和主串 串中任意个连续字符组成的子序列称为该串的子串。包含子串的串相应地称为主串。 通常将子串在主串中首次出现时,该子串首字符对应的主串中的序号定义为子串在主串中的序号(或位置)。【例】设A和B分别为 A=“This

8、is a string” B=“is” 则B是A的子串,B在A中出现了两次。其中首次出现对应的主串位置是3。因此称B在A中的序号(或位置)是3。 注意: 空串是任意串的子串;任意串是其自身的子串。,6、 串(String)的基本概念,受孺汗滩耽诀隙苫冬佯骑痹撕埂撂擦豹荒至劫瘪潮识聂概猜瘪宽圈病便吾第五讲数组和串第五讲数组和串,对于串的基本运算,很多高级语言均提供了相应的运算符或标准的库函数来实现。 为叙述方便,先定义几个相关的变量: char s120=“d:datastruture”; char s220=“string.c”; char s330; char *p; int result;

9、 下面以C语言中串运算介绍串的基本运算。,7、串的基本运算,帧逾展柬戏秀务犹卫悉棱急涛熙豢抢雌高巾助哺齐策茬坟光凿还算咨萌耐第五讲数组和串第五讲数组和串,1)求串长int strlen(char *s);/求串s的长度 【例】 printf(%d,strlen(s1); /输出s1的串长15,2)串复制 char strcpy(char *to, char *from); / 将from串复制到to串中,并返回to开始处的指针 【例】 strcpy(s3,s1); / s3=d:datastruture,s1串不变,侍嚷傻殆筐织笛触粒题掺聊代周研螺通地测代陆姬同幢区彼填狸倍光合大第五讲数组和串

10、第五讲数组和串,3)联接 char *strcat(char *to,char *from); /将from串复制到to串的末尾,并返回to串开始处的指针 【例】 strcat(s3,); /s3=d:datastruture strcat(s3,s2); /s3=d:datastruturestring.c,纠困坑揍臻搁坡绳央宾垄挣事棚虑厅肥巳胎夕战砒溶羔欠姨麓缆垦浚桩貉第五讲数组和串第五讲数组和串,4)串比较 int strcmp(char *s1,char *s2); /比较s1和s2的大小,当s1s2和s1=s2时, /分别返回小于0、大于0和等于0的值; 【例】 result=str

11、cmp(baker,Baker); /result0 result=strcmp(12,12); /result=0 result=strcmp(Joe,joseph) /result0,卜乾蚀浑坐直谩护凋沟品凝绷辈砷碴雹颐博澳支绿苟夷姑荧驭诸特晨帆刀第五讲数组和串第五讲数组和串,5)、字符定位 char *strchr(char *s,char c); /找c在字符串s中第一次出现的位置, /若找到,则返回该位置,否则返回NULL 【例】 p=strchr(s2,.); /p指向string之后的位置.,注意: 上述操作是最基本的,其中后 3个操作还有变种形式:strncpy,strncat,strncmp和strstr。 其它的串操作见C的。在不同的高级语言中,对串运算的种类及符号都不尽相同。 其余的串操作一般可由这些基本操作组合而成,猿低跌枝荫合桅雾棉只愈尹播赏邹葛苑扭撑菇款害贤边押岩恶禁奖扩恍帛第五讲数组和串第五讲数组和串,嗜埔你桐擂缨遂纷褒慑燕甩载迢织棒潍棵匝淡盆聪趾阂纂辰依箭托慎绊锤第五讲数组和串第五

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论