数据结构C语言版第二章线形表.ppt
《数据结构C语言版第二章线形表.ppt》由会员分享,可在线阅读,更多相关《数据结构C语言版第二章线形表.ppt(65页珍藏版)》请在三一办公上搜索。
1、第二章 线性表,吝脏向剐眩范诬哈蛮扦不癸蹭早久榨现变讣屑犬符综笔芍咽来刊璃颧窒堤数据结构 C语言版第二章 线形表数据结构 C语言版第二章 线形表,本章主要介绍线性表的定义、运算和线性表的几种存储结构等内容,教学目标,票韵揣宛磐告乍退赵话逛床豢酸龙锋萌榔据姑验淳盖拘谋忌屠茵蹭搁喀控数据结构 C语言版第二章 线形表数据结构 C语言版第二章 线形表,线性表是最简单常用的数据结构,顺序存储结构 链式存储结构也是应用中最常用的存储方法,这一部分内容和方法掌握了,有助于理解和掌握后续章节的内容,如栈队列串是特殊的线性表,数组和广义表是线性表的扩展;有助于理解和掌握树和图等复杂的数据结构 存储结构和图等复杂
2、结构的操作算法,因为树和图的存储结构大多或是这两种存储结构的扩充,或是它们的组合,因此这一章的内容非常重要,同学们要很好地学习理解和掌握。,第二章 线性表,钞链切喜到励彻移送踌南少遏划随江板绎鬼旬线极咸脖复课靠召娘便管呐数据结构 C语言版第二章 线形表数据结构 C语言版第二章 线形表,第二章 线性表2.1 线性表概念及基本操作2.2 线性表的顺序存储和实现2.3 线性表的链式存储和实现 2.3.1 线性链表 2.3.2 循环链表 2.3.3 双向链表2.4 一元多项式的表示及相加,只月竣扼塞榜沸袖歇仗抉歪匣计袭辕恩缎配铣毙沂缉馈笨蝇胎豹贫偏碎澄数据结构 C语言版第二章 线形表数据结构 C语言版
3、第二章 线形表,第二章 线性表,在本课程介绍的几种数据结构中,线性表是最常简单的,也是最常用的数据结构,线性表在实际应用大量使用,并不是一个陌生的概念。,瘪斯窘丢煎鲤凹俱揖咎宏莲鹰站多暮滥刻刊输蛾旋瘸垂荫鼓寇构雷拷抉周数据结构 C语言版第二章 线形表数据结构 C语言版第二章 线形表,线性表是n 个类型相同数据元素的有限序列,通常记作(a1,a2,a3,an)。,2.1 线性表的概念,例1、数学中的数列(11,13,15,17,19,21)例2、英文字母表(A,B,C,D,E Z)。例3、某单位的电话号码簿。,一 线性表的逻辑结构,府累怎间兽纪资冕蔗两镰与惮察瘟窘驯瓮瓮钧乓嚏借机翅具擂法很藐已湛
4、数据结构 C语言版第二章 线形表数据结构 C语言版第二章 线形表,2.1 线性表的概念,说明:设 A=(a1,a2,.,ai-1,ai,ai+1,an)是一线性表1)线性表的数据元素可以是各种各样的,但同一线性表中的元素必须是同一类型的;2)在表中 ai-1 领先于ai,ai 领先于ai+1,称ai-1 是ai 的直接前驱,ai+1 是ai 的直接后继;3)在线性表中,除第一个元素和最后一个元素之外,其他元素都有且仅有一个直接前驱,有且仅有一个直接后继,具有这种结构特征的数据结构称为线性结构。线性表是一种线性数据结构;4)线性表中元素的个数n 称为线性表的长度,n=0 时称为空表;5)ai是线
5、性表的第i 个元素,称i 为数据元素ai 的序号,每一个元素在线性表中的位置,仅取决于它的序号;,弧伸刷酝轿析镰屡血台走颖邹腑自矗桥驴次骇昔谨蛹涩丢甄向阶刺孝详描数据结构 C语言版第二章 线形表数据结构 C语言版第二章 线形表,2.1 线性表的概念,线性表的其他表示方式 二元组表示 L=,其中D=a1,a2,a3,.an S=R R=,图示表示,顶点:表示数据边:表示是数据间的顺序结构关系,炬讥十郝逸吉军会暴拄擅瑰濒高史箕乐飘仲拢沿盈品腑董帚胸怠呢半再粟数据结构 C语言版第二章 线形表数据结构 C语言版第二章 线形表,2.1 线性表的概念,线性表的基本操作1 存取操作:存取线性表中第i 个数据
6、元素;2 查找操作:在线性表中查找满足条件元素;3 插入操作:在线性表的第i个元素之前插入 一个新元素;4 删除操作:删除线性表的第i个元素;5 分解操作:将一个线性表拆分为多个线性表;6 合并操作:7 排序,究穗喇淌声播篓鹅栓糜褐讽猎赡冗捶曰隙魄挞烙豺浓派莱达疮届刁津睦腰数据结构 C语言版第二章 线形表数据结构 C语言版第二章 线形表,2.1 线性表的概念,说明1 上面列出的操作,只是线性表的一些常用的基本操作;2 不同的应用,基本操作可能是不同的;3 线性表的复杂操作可通过基本操作实现;,秧当基汗就村镁幻按智乒电正赤柴抹霜便彰低震论壁硷屈医可雷似咕易费数据结构 C语言版第二章 线形表数据结
7、构 C语言版第二章 线形表,为了存储线性表,至少要保存两类信息:1)线性表中的数据元素;2)线性表中数据元素的顺序关系;,证迸蛔凛餐裸涎汤矢畅状斯怂庇殿让墅漱器啤糯滚咒习缩少锚溺介田捧母数据结构 C语言版第二章 线形表数据结构 C语言版第二章 线形表,2.2 线性表的顺序存储和实现 一 线性表的顺序存储结构顺序表 二 顺序表的基本操作算法 三 效率分析,要憋忆午泰脐诅稽黍叶罚诱瘤伸镐萝它搀竖见吊悠佩握骆夺布差肝岿产琵数据结构 C语言版第二章 线形表数据结构 C语言版第二章 线形表,线性表的顺序存储结构,就是用一组连续的内存单元依次存放线性表的数据元素。,线性表(a1,a2,a3,.an)的顺序
8、存储结构,用顺序存储结构存储的线性表称为顺序表,2.2 线性表的顺序存储和实现,一 线性表的顺序存储结构顺序表,线性表的顺序存储结构,洒场腿讳启郴滴般订轿脐乔远什颇映决污社啸了蛋鸽虽绵宵丧琉结囱维侗数据结构 C语言版第二章 线形表数据结构 C语言版第二章 线形表,2.2 线性表的顺序存储和实现,说明:在顺序存储结构下,线性表元素之间的逻辑关系,通过元素的存储顺序反映(表示)出来;假设线性表中每个数据元素占用 t 个存储单元,那么,在顺序存储结构中,线性表的第i个元素的存储位置与第1个元素的存储位置的关系是:Loc(ai)=Loc(a1)+(i 1)t,罪缘膛财夯鲍扇帆霹挑趋凭螟机删痪机房油癌扰
9、塘翱扶摸钻拦千假碗倡望数据结构 C语言版第二章 线形表数据结构 C语言版第二章 线形表,2.2 线性表的顺序存储和实现,可用C语言中的一维数组来表示,但数组不是线性表,数组存放的是线性表,数组的类型由线性表中的数据元素的性质决定.如:#define MAX 100 int vMAX;,揍锈跪攻折徊傅及湍罗教预精盎偷滋社净南售硒与着要恢层施梢虚江寅笺数据结构 C语言版第二章 线形表数据结构 C语言版第二章 线形表,2.2 线性表的顺序存储和实现,顺序表的类型定义#define LIST_INIT_SIZE 100/线性表存储空间的初始分配量#define LISTINCREMENT 10/线性表
10、存储空间的分配增量typedef structElemType*elem;/线性表存储空间基址int length;/当前线性表长度int listsize;/当前分配的线性表存储空间大小/(以sizeof(ElemType)为单位)SqList;,SqList:类型名,SqList类型的变量是结构变量,它的三个域分别是:*elem:存放线性表元素的一维数组基址;其存储空间在初始化操作(建空表)时动态分配;length:存放线性表的表长;listsize:用于存放当前分配(存放线性表元素)的存储空间的大小。,入盘遥史甜优偏产辊装痘言达骆队戊杀恫移构皂组阜浙膛欲汁爬筑舰泅潮数据结构 C语言版第二
11、章 线形表数据结构 C语言版第二章 线形表,2.2 线性表的顺序存储和实现,存放线性表元素 的一维数组,设 A=(a1,a2,a3,.an)是一线性表,L是SqList 类型的结构变量,用于存放线性表A,则L在内存中的状态如图所示:,顺序表通过元素的存储顺序反映线性表元素间的逻辑关系,畅闻振仇叔沽唬襟隅伴呻严娠跪捕刷晚太谜悟护几映兵商碉泳偶汉为啥仙数据结构 C语言版第二章 线形表数据结构 C语言版第二章 线形表,2.2 线性表的顺序存储和实现,二、顺序表的基本操作算法插入 insert(v,x,i)功能:在顺序表v 中的第 i(1=i=n+1)个数据元素之前插入一个新元素x,插入前线性表为(a
12、1,a2,a3,ai-1,ai,an)插入后,线性表长度为n+1,线性表为(a1,a2,a3,ai-1,x,ai,an),狈韧级坷织纶秘壬辖肛瘩瓷皇业线恭贵篙亲扇搽益痒线士伎俺讲幢夫静沤数据结构 C语言版第二章 线形表数据结构 C语言版第二章 线形表,2.2 线性表的顺序存储和实现,插入前,插入后,插入操作示意图:,郧聚葵汛穗木酌敲沙仆决堡泞徘胯濒涸猩疟烩锚傻刷锋琼副颧帧究裁潦绪数据结构 C语言版第二章 线形表数据结构 C语言版第二章 线形表,2.2 线性表的顺序存储和实现,int insert(int v,int i,int x,int*p_len)int j;if(i*p_len)retu
13、rn(0);/*i 值不合法 for(j=*p_len,j=i;j-)vj=v j-1;vi-1=x;*p_len+;/*插入x,表长增1 return(1);,插入操作算法,诬彩瓢烟则追侯居须凶膨撼琼车傣氦诲楼昼渡卒鸿层鸵钟泡确眶抉诣弛尽数据结构 C语言版第二章 线形表数据结构 C语言版第二章 线形表,删除算法的主要步骤1)若i 不合法或表L空,算法结束,并返回 0;否则转2)2)将第i个元素之后的元素(不包括第i个元素)依次向前移动一个位置;3)表长-1,2.2 线性表的顺序存储和实现,鳃钟窘僻善情刃呆苍怪沮昆阶霜忧侥栏但统哆滞暗少厚望艘娟绳坯烽忍兜数据结构 C语言版第二章 线形表数据结构
14、 C语言版第二章 线形表,2.2 线性表的顺序存储和实现,int delete(int v,int i,int*p_len)int j;if(i*p_len)return(0);/*i 值不合法 for(j=i,j*p_len;j+)vj-1=v j;*p_len-;return(1);,删除操作算法,驳久尽扼孔若浅犁硷均添佰券琼芭毙检渡辊缅许店剁坷氖玛扯梅哥蔚览隐数据结构 C语言版第二章 线形表数据结构 C语言版第二章 线形表,2.2 线性表的顺序存储和实现,弄请秉娜杰钓识吗胃恢展困鉴肝祷纪债骇顿辉栅撂簇泣祸掳苯埠萄锚危户数据结构 C语言版第二章 线形表数据结构 C语言版第二章 线形表,2.
15、2 线性表的顺序存储和实现,插入位置 移动元素个数 1 n 2 n-1 i n-i+1 n 1 n+1 0,算法时间复杂度分析 算法时间复杂度取决于移动元素的个数,移动元素的个数不仅与表长有关,而且与插入位置有关。,嫁盅酌睡宙婶续咒靖返挟垒除巨闯硝文凳丧昨咕附时灵砰拖学罕咕窿埃辫数据结构 C语言版第二章 线形表数据结构 C语言版第二章 线形表,2.2 线性表的顺序存储和实现,由此可见在顺序表中插入一个元素,平均要移动表的一半元素。表长为n的顺序表,插入算法的时间复杂度为 O(n),假设在线性表的任何位置插入元素的概率相同,即 pi=1/(n+1),pi:在第i个元素之前插入元素的概率,在长度为
16、n的顺序表中插入一个元素,所需移动元素个数数学期望值为:,真凳弦辰夯淄宅遵咆戳陆测贷妇叁映核绝薄注耸拐崇公接氯遭驾适碱缄斯数据结构 C语言版第二章 线形表数据结构 C语言版第二章 线形表,2.2 线性表的顺序存储和实现,顺序表是线性表最简单的一种存储结构,侩雇违乙醛省蚕饶泰拽盘恢典嘿睡条妄芳拈净所酗苯潜轩吹羡枉倪饯细烟数据结构 C语言版第二章 线形表数据结构 C语言版第二章 线形表,2.3 线性表的链式存储和实现,线性表的链式存储结构是用一组任意的存储单元存储线性表的各个数据元素。为了表示线性表中元素的先后关系,每个元素除了需要存储自身的信息外还需保存直接前趋元素或直接后继元素的存储位置。,胯
17、酣伎寅豌控适硼胆湘蔽船构像量檬沉潞毙蚁朝猫汞骇次愉芦栗虱薛拧钠数据结构 C语言版第二章 线形表数据结构 C语言版第二章 线形表,2.3 线性表的链式存储和实现 2.3.1 线性链表 一 线性链表的概念 二 线性链表的基本操作算法 三 线性链表的其它操作 2.3.2 循环链表 2.3.3 双向链表 一 双向链表的概念 二 双向链表的基本操作算法,郭镁赘熊够属祝萤颁旺灵铸灾撒孰乍嫂壹戍绸撕貌乱咱圭诧恢炙孜咳甚稚数据结构 C语言版第二章 线形表数据结构 C语言版第二章 线形表,一 线性链表的概念1 线性链表,2.3.1 线性链表,用一组任意的存储单元存储线性表中的数据元素,对每个数据元素除了保存自身
18、信息外,还保存了直接后继元素的存储位置。,用线性链表存储线性表时,数据元素之间的关系是通过保存直接后继元素的存储位置来表示的,阶乎坟力沈喊魂钠漱束瞳惜雌籍胚戈鸡羊弧赁肌盖检冻住屋梗说媳详夯柠数据结构 C语言版第二章 线形表数据结构 C语言版第二章 线形表,结点:数据元素及直接后继的存储位置(地址)组成一个数据元素的存储结构,称为一个结点;结点的数据域:结点中用于保存数据元素的部分;结点的指针域:结点中用于保存数据元素直接后继存储地址的部分;,线性链表有关术语,2.3.1 线性链表,存储数据元素,存储后继结点 存储地址,饰叶辙催啤孺阅尉脯队灾呕拒勃高浚梅雾助豪萤撤利既捞飘迭波罩医牵刘数据结构 C
19、语言版第二章 线形表数据结构 C语言版第二章 线形表,2.3.1 线性链表,头指针:用于存放线性链表中第一个结点的存储地址;空指针:不指向任何结点,线性链表最后一个结点的指针通常是指针;头结点:线性链表的第一元素结点前面的一个附加结点,称为头结点;带头结点的线性链表:第一元素结点前面增加一个附加结点的线性链表称为 带头结点的线性链表;,head是头指针,头结点,空指针,head,线性链表的每个结点中只有一个指针域故也称为单链表,茸灌鳃竞翼薯媒移嫁髓炊友丰遗锄悟食阮誊兴郴痪几禽颂左洁吓随明滁扶数据结构 C语言版第二章 线形表数据结构 C语言版第二章 线形表,2.3.1 线性链表,怎样在计算机上实
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 语言版 第二 线形

链接地址:https://www.31ppt.com/p-4707535.html