数据结构第2章线性表课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《数据结构第2章线性表课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 线性 课件
- 资源描述:
-
1、1线性结构的定义:线性结构的定义:若结构是非空有限集,则有且仅有一个开始结点和一个若结构是非空有限集,则有且仅有一个开始结点和一个终端结点,并且所有结点都最多只有一个直接前趋和一个直终端结点,并且所有结点都最多只有一个直接前趋和一个直接后继。接后继。可表示为:(可表示为:(a a1 1,a,a2 2 ,a,an n)简言之,线性结构反映结点间的逻辑关系是简言之,线性结构反映结点间的逻辑关系是 的。的。特点特点 只有一个首结点和尾结点;只有一个首结点和尾结点;特点特点 除首尾结点外,其他结点只有一个直接前驱和一个除首尾结点外,其他结点只有一个直接前驱和一个直接后继。直接后继。线性结构包括:线性结
2、构包括:线性表、栈、队列、字符串、数组线性表、栈、队列、字符串、数组等,等,其中最典型、最常用的是其中最典型、最常用的是-见第见第2章章一对一一对一(1:1)2(a1,a2,ai-1,ai,ai1,,an)2.1 线性表的逻辑结构线性表的逻辑结构 1.线性表的定义:线性表的定义:用数据元素的有限序列表示用数据元素的有限序列表示n=0时称为时称为数据元素数据元素线性起点线性起点ai的直接前趋的直接前趋ai的直接后继的直接后继下标,下标,是元素的是元素的序号,表示元素序号,表示元素在表中的位置在表中的位置n为元素总个为元素总个数,即表长数,即表长空表空表线性终点线性终点3例例1 分析分析26 个英
3、文字母组成的英文表是什么结构。个英文字母组成的英文表是什么结构。(A,B,C,D,Z)学号学号姓名姓名性别性别年龄年龄班级班级012002009524刘禹圻刘禹圻男男 182002级计科级计科0201班班012002009613武武 锐锐男男 182002级计科级计科0202班班012002009710彭彭 隽隽男男 172002级计科级计科0203班班012002009801郭郭 芳芳女女 182002级计科级计科0204班班012002009904张珍珍女18182002级计科级计科0205班班:例例2 分析学生情况登记表是什么结构。分析学生情况登记表是什么结构。分析:分析:数据元素都是同
4、类型(数据元素都是同类型(记录)记录),元素间关系是线性的。,元素间关系是线性的。分析:分析:数据元素都是同类型(数据元素都是同类型(字母)字母),元素间关系是线性的。元素间关系是线性的。42.2.1 顺序表的表示顺序表的表示用一组用一组地址连续地址连续的存储单元依次的存储单元依次存储线性表的元素。存储线性表的元素。把逻辑上相邻的数据元素存储在物把逻辑上相邻的数据元素存储在物理上相邻的存储单元中的存储结构。理上相邻的存储单元中的存储结构。线性表的顺序表示又称为线性表的顺序表示又称为顺序存储结构顺序存储结构或顺序映像。或顺序映像。顺序存储定义:顺序存储定义:顺序存储方法:顺序存储方法:简言之:简
5、言之:逻辑上相邻的元素,物理上也相邻逻辑上相邻的元素,物理上也相邻可以利用可以利用数组数组VnVn来实现。来实现。注意:注意:在在C C语言中数组的下标是从语言中数组的下标是从0 0开始,即:开始,即:VnVn的有效范围是从的有效范围是从 VV0 0 VVn-1n-1 5线性表顺序存储特点:线性表顺序存储特点:1.逻辑上相邻的数据元素,其物理上也相邻;逻辑上相邻的数据元素,其物理上也相邻;2.若已知表中首元素在存储器中的位置,则其他元若已知表中首元素在存储器中的位置,则其他元素存放位置亦可求出素存放位置亦可求出(利用数组利用数组VnVn的的下标下标)。)。设首元素设首元素a1的存放地址为的存放
6、地址为LOC(a1)(称为称为首地址首地址),),设每个元素占用存储空间(地址长度)为设每个元素占用存储空间(地址长度)为L字节,字节,则表中任一数据元素的则表中任一数据元素的存放地址存放地址为:为:LOC(ai+1)=LOC(ai)+L 对上述公式的解释如图所示:对上述公式的解释如图所示:6线性表的顺序存储结构示意图线性表的顺序存储结构示意图a a1 1a a2 2a ai ia ai+1i+1a an n 地址地址 内容内容 元素在表中的位序元素在表中的位序1 1i i2 2n n空闲区空闲区i+1i+1Lb=LOC(a1)b+L Lb+(i-1)+(i-1)L Lb+(n-1)+(n-1
7、)L Lb+(max-1)+(max-1)L L7设有一维数组,下标的范围是到,每设有一维数组,下标的范围是到,每个数组元素用相邻的个数组元素用相邻的个字节个字节存储。存储器按字存储。存储器按字节编址,设存储数组元素节编址,设存储数组元素 的第一个字节的的第一个字节的地址是地址是,则,则 的第一个字节的地址是的第一个字节的地址是113例例1因此:因此:LOC(M3)=98+5(3-0)=113解:解:已知地址计算通式为:已知地址计算通式为:LOC(ai)=LOC(a1)+L*(i-1)82.2.2 顺序表的实现(或操作)顺序表的实现(或操作)回忆回忆:数据结构基本运算操作有:数据结构基本运算操
8、作有:修改、插入、删除、修改、插入、删除、查找、排序查找、排序1)1)修改修改 通过数组的下标便可访问某个特定元通过数组的下标便可访问某个特定元素并修改之。素并修改之。核心语句核心语句:Vi=x;显然,顺序表修改操作的时间效率是显然,顺序表修改操作的时间效率是T(n)=O(1)92)2)插入插入 在线性表的第在线性表的第i i个位置个位置前前插入插入一个元素一个元素实现步骤:实现步骤:将第将第n至第至第i 位的元素向后移动一个位置;位的元素向后移动一个位置;将要插入的元素写到第将要插入的元素写到第i个位置;个位置;表长加表长加1。事先应判断事先应判断:插入位置插入位置i 是否合法是否合法?表是
9、否已满表是否已满?应当有应当有1in+1 或或 i=1,n+1for(j=n;j=i;j)aj+1=aj;ai=x;n+;/元素后移一个位置元素后移一个位置/插入插入x x/表长加表长加1 1 核心语句:核心语句:10在线性表的第在线性表的第i i个位置前插入一个元素的示意图如下:个位置前插入一个元素的示意图如下:1213212428304277121321242830427712345678123456789插入插入11实现步骤:实现步骤:将第将第i+1至第至第n 位的元素向前移动一个位置;位的元素向前移动一个位置;表长减表长减1。注意:注意:事先需要判断,事先需要判断,删除位置删除位置i
10、是否合法是否合法?应当有应当有1in 或或 i=1,n3)3)删除删除 删除删除线性表的第线性表的第i i个位置上的元素个位置上的元素for(j=i+1;jdata=;p-next=;方式方式3:p指向结点首地址,然后指向结点首地址,然后(*p).data=;(*p).nextb223.补充结构数据类型的补充结构数据类型的C表示法表示法 类型定义和变量说明可以合写为:类型定义和变量说明可以合写为:chy /chychy是自定义结构类型名称是自定义结构类型名称 char data;/定义数据域的变量名及其类型定义数据域的变量名及其类型 chy*next;/定义指针域的变量名及其类型定义指针域的变
11、量名及其类型node,*head;/nodenode是是chychy结构类型的变量结构类型的变量,*headhead是是chychy结构类型的头指针结构类型的头指针/对于指向结构变量对于指向结构变量node首地址的指针,可说明为:首地址的指针,可说明为:struct node *p,*q;/或用或用 struct *p,*q;/注:上面已经定义了注:上面已经定义了node为用户自定义的为用户自定义的chychy类型。类型。23 介绍三个有用的库函数(都在介绍三个有用的库函数(都在 中):中):sizeof(x)计算变量计算变量x x的长度;的长度;malloc(m)开辟开辟m m字节长度的地址
12、空间,并返回这段空间的字节长度的地址空间,并返回这段空间的首地址;首地址;free(p)释放指针释放指针p p所指变量的存储空间,即彻底删除所指变量的存储空间,即彻底删除一个变量。一个变量。设设p p为指向链表的第为指向链表的第i i个元素的指针个元素的指针,则第则第i i个元素的个元素的数据域写为数据域写为 ,指针域写为,指针域写为 。练习:练习:p-dataai的值的值p-nextai+1的地址的地址24sizeof(x)计算计算x x的长度的长度malloc(m)开开m m字节字节空间空间free(p)删除一个变量删除一个变量问问1:自定义结构类型变量自定义结构类型变量node的长度的长
展开阅读全文