第02章线性表A.ppt
《第02章线性表A.ppt》由会员分享,可在线阅读,更多相关《第02章线性表A.ppt(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第1章章绪论绪论第第2章章线性表线性表第第3章章栈和队列栈和队列第第4章章串串第第5章章数组和广义表数组和广义表第第6 6章章 树和二叉树树和二叉树第第7章章图图第第9章章查找查找第第10章章排序排序目目 录录1数据结构课程的起点数据结构课程的起点什么是什么是线性结线性结构?构?2线性结构的定义:线性结构的定义:若若结结构构是是非非空空有有限限集集,则则有有且且仅仅有有一一个个开开始始结结点点和和一一个个终终端端结结点点,并并且且所所有有结结点点都都最最多多只只有有一一个个直直接接前趋和一个直接后继。前趋和一个直接后继。可表示为:(可表示为:(a1,a2,an)简言,线性结构反映结点间的逻辑
2、关系是简言,线性结构反映结点间的逻辑关系是。特点特点 只有一个首结点和尾结点;只有一个首结点和尾结点;特特点点 除除首首尾尾结结点点外外,其其他他结结点点只只有有一一个个直直接接前前驱驱和一个直接后继。和一个直接后继。线性结构包括:线性结构包括:线性表、堆栈、队列、字符串、数组线性表、堆栈、队列、字符串、数组等,其中最典型、最常用的是等,其中最典型、最常用的是-线性表线性表一对一一对一(1:1)(1:1)3第2章 线性表2.1 2.1 线性表的逻辑结构线性表的逻辑结构线性表的逻辑结构线性表的逻辑结构 2.2 2.2 线性表的顺序表示和实现线性表的顺序表示和实现线性表的顺序表示和实现线性表的顺序
3、表示和实现2.3 2.3 线性表的链式表示和实现线性表的链式表示和实现线性表的链式表示和实现线性表的链式表示和实现2.4 2.4 应用举例应用举例应用举例应用举例4(a1,a2,ai-1,ai,ai1,,an)2.1线性表的逻辑结构线性表的逻辑结构线性表的定义:线性表的定义:线性表的定义:线性表的定义:用数据元素的有限序列表示用数据元素的有限序列表示n=0时称为时称为数据元素数据元素线性起点线性起点ai的直接前趋的直接前趋ai的直接后继的直接后继下标,下标,是元素的是元素的序号,表示元素序号,表示元素在表中的位置在表中的位置n为元素总为元素总个数,即表个数,即表长。长。n0n0空表空表线性终点
4、线性终点5 (A,B,C,D,ZA,B,C,D,Z)学号学号学号学号姓名姓名姓名姓名性别性别性别性别年龄年龄年龄年龄班级班级班级班级012003010622012003010622陈建武陈建武陈建武陈建武男男男男 19 1920032003级电信科级电信科级电信科级电信科03010301班班班班012003010704012003010704赵玉凤赵玉凤赵玉凤赵玉凤女女女女 18 1820032003级电信科级电信科级电信科级电信科03020302班班班班012003010813012003010813王王王王 泽泽泽泽男男男男 19 1920032003级电信科级电信科级电信科级电信科030
5、30303班班班班012003010906012003010906薛薛薛薛 荃荃荃荃男男男男 19 1920032003级电信科级电信科级电信科级电信科03040304班班班班012003011018012003011018王王 春春男男 1919191920032003级电信科级电信科级电信科级电信科03050305班班班班:例例2分析学生情况登记表是什么结构。分析学生情况登记表是什么结构。分析:分析:数据元素都是同类型(数据元素都是同类型(记录记录),元素间关系是线性的。),元素间关系是线性的。分析:分析:数据元素都是同类型(数据元素都是同类型(字母字母),),元素间关系是线性的。元素间关
6、系是线性的。注意:同一线性表中的元素必定具有相同特性注意:同一线性表中的元素必定具有相同特性注意:同一线性表中的元素必定具有相同特性注意:同一线性表中的元素必定具有相同特性!例例1分析分析26个英文字母组成的英文表是什么结构。个英文字母组成的英文表是什么结构。6“同同同同一一一一数数数数据据据据逻逻逻逻辑辑辑辑结结结结构构构构中中中中的的的的所所所所有有有有数数数数据据据据元元元元素素素素都都都都具具具具有有有有相相相相同同同同的的的的特特特特性性性性”是是是是指指指指数数数数据据据据元元元元素素素素所所所所包包包包含含含含的的的的数数数数据据据据项项项项的的的的个个个个数数数数都都都都相相相
7、相等。等。等。等。是指各元素具有相同的数据类型是指各元素具有相同的数据类型是指各元素具有相同的数据类型是指各元素具有相同的数据类型试判断下列叙述的正误:试判断下列叙述的正误:72.2线性表的顺序表示和实现线性表的顺序表示和实现2.2.1顺序表的表示顺序表的表示2.2.2顺序表的实现顺序表的实现2.2.3顺序表的运算效率分析顺序表的运算效率分析82.2.12.2.1顺序表的表示顺序表的表示顺序表的表示顺序表的表示用用用用一一一一组组组组地地地地址址址址连连连连续续续续的的的的存存存存储储储储单单单单元元元元依依依依次次次次存储线性表的元素存储线性表的元素存储线性表的元素存储线性表的元素。把逻辑上
8、相邻的数据元素存储在物把逻辑上相邻的数据元素存储在物理上相邻的存储单元中的存储结构。理上相邻的存储单元中的存储结构。线性表的顺序表示又称为线性表的顺序表示又称为顺序存储结构顺序存储结构或顺序映像。或顺序映像。顺序存储定义:顺序存储定义:顺序存储方法:顺序存储方法:特点:特点:逻辑上相邻的元素,物理上也相邻逻辑上相邻的元素,物理上也相邻可以利用可以利用数组数组VnVn来实现来实现注意:在注意:在C C语言中数组的下标是从语言中数组的下标是从0 0开始,即:开始,即:VnVn的有效范围是从的有效范围是从 V0V0Vn-1Vn-191.1.逻辑上相邻的数据元素,其物理上也相邻;逻辑上相邻的数据元素,
9、其物理上也相邻;逻辑上相邻的数据元素,其物理上也相邻;逻辑上相邻的数据元素,其物理上也相邻;2.2.若已知表中首元素在存储器中的位置,则其他元若已知表中首元素在存储器中的位置,则其他元若已知表中首元素在存储器中的位置,则其他元若已知表中首元素在存储器中的位置,则其他元素存放位置亦可求出素存放位置亦可求出素存放位置亦可求出素存放位置亦可求出(利用数组利用数组利用数组利用数组VnVn的的的的下标下标下标下标)。设首元素设首元素a1的存放地址为的存放地址为LOC(a1)(称为称为首地址首地址),),设每个元素占用存储空间(地址长度)为设每个元素占用存储空间(地址长度)为L字节,字节,则表中任一数据元
10、素的则表中任一数据元素的存放地址存放地址为:为:LOC(ai+1)=LOC(ai)+LLOC(LOC(a ai i)=LOC()=LOC(a a11)+L*)+L*(i-1i-1)对上述公式的解释如图所示对上述公式的解释如图所示线性表顺序存储特点:线性表顺序存储特点:10a a a a1 1 1 1a a a a2 2 2 2a a a ai i i ia a a ai+1i+1i+1i+1a a a an n n n 地址地址 内容内容 元素在表中的位序元素在表中的位序1 1i i2 2n n空闲区空闲区i+1i+1Lb=LOC(a1)b+L Lb+(i-1)+(i-1)L Lb+(n-1)
11、+(n-1)L Lb+(max-1)+(max-1)L LLOC(LOC(a ai i)=LOC(a)=LOC(a11)+L*)+L*(i i-1-1)线性表的顺序存储结构示意图线性表的顺序存储结构示意图下标起下标起点是点是1 111设有一维数组设有一维数组设有一维数组设有一维数组,下标的范围是,下标的范围是,下标的范围是,下标的范围是到到到到,每个,每个,每个,每个数组元素用相邻的数组元素用相邻的数组元素用相邻的数组元素用相邻的个字节个字节个字节个字节存储。存储器按字节编存储。存储器按字节编存储。存储器按字节编存储。存储器按字节编址,设存储数组元素址,设存储数组元素址,设存储数组元素址,设存
12、储数组元素 的第一个字节的地址是的第一个字节的地址是的第一个字节的地址是的第一个字节的地址是98989898,则,则,则,则 的第一个字节的地址是多少?的第一个字节的地址是多少?的第一个字节的地址是多少?的第一个字节的地址是多少?答案:答案:113但此题要注意下标起点是从但此题要注意下标起点是从0 0开始:开始:LOC(M3)=98+5(4-1)=113解:解:已知地址计算通式为:已知地址计算通式为:LOC(ai)=LOC(a1)+L*(i-1)例例112charV30;voidbuild()/*字母线性表的生成,即字母线性表的生成,即建表操作建表操作*/inti;V0=a;for(i=1;i
13、=n-1;i+)Vi=Vi-1+1;核心语句:核心语句:法法法法1Vi=Vi-1+1;1Vi=Vi-1+1;法法法法2Vi=a+i;2Vi=a+i;法法法法3Vi=97+i;3Vi=97+i;例例2用数组用数组V来存放来存放26个英文字母组成的线性表(个英文字母组成的线性表(a,b,c,z),),写出在顺序结构上写出在顺序结构上生成生成和和显示显示该表的该表的C语言程序。语言程序。省略了省略了includeinclude语句语句13voidmain()/*主函数主函数,字母线性表的,字母线性表的生成和输出生成和输出*/n=26;/*n n是表长,是数据元素的个数,而不是是表长,是数据元素的个数
14、,而不是V V的的 实际下标实际下标*/build();display();voiddisplay()/*字母线性表的显示,即字母线性表的显示,即读表操作读表操作*/inti;for(i=0;i=i;j-)aj+1=aj;ai=x;n+;/元素后移一个位置元素后移一个位置/插入插入x x/表长加表长加1 1 核核心心语语句句2)2)插入插入:16在线性表的第在线性表的第i i个位置前插入一个元素的示意图:个位置前插入一个元素的示意图:121213132121242428283030424277771212131321212424252528283030424277771 12 23 34 45
15、 56 67 78 81 12 23 34 45 56 67 78 89 9插入插入2525252517实现步骤:实现步骤:实现步骤:实现步骤:n n将第将第将第将第i+1i+1 至第至第至第至第n n 位的元素向前移动一个位置;位的元素向前移动一个位置;位的元素向前移动一个位置;位的元素向前移动一个位置;n n表长减表长减表长减表长减1 1。注意:事先需要判断,注意:事先需要判断,注意:事先需要判断,注意:事先需要判断,删除位置删除位置删除位置删除位置i i 是否合法是否合法是否合法是否合法?应当符合条件:应当符合条件:应当符合条件:应当符合条件:1in 1in 或或或或 i=1,ni=1,
16、n删除删除线性表的第线性表的第i i个位置上的元素个位置上的元素for(j=i+1;j=n;j+)aj-1=aj;n-;/元素前移一个位置元素前移一个位置/表长减表长减1 1 核心语句:核心语句:3)3)删除删除:181 12 23 34 45 56 67 78 89 91212131321212424252528283030424277771 12 23 34 45 56 67 78 812121313212124242828303042427777删除顺序表中某个指定的元素的示意图:删除顺序表中某个指定的元素的示意图:顺序表插入和删除的完整程序请同学们自编。顺序表插入和删除的完整程序请同学
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 02 线性
限制150内