第2章线性表 本章主要介绍下列内容 线性表的定义和基本操作 线性表的顺序存储结构 线性表的链式存储结构 线性表的应用举例 西顺大学教学与信息学院 退出
ぜ2【 ㏮ᕖ㶗 ᴀゴЏ㽕ҟ㒡ϟ߫ݙᆍ l 㒓ᗻ㸼ⱘᅮНᴀ᪡ l 㒓ᗻ㸼ⱘ乎ᑣᄬټ㒧ᵘ l 㒓ᗻ㸼ⱘ䫒ᓣᄬټ㒧ᵘ l 㒓ᗻ㸼ⱘᑨ⫼В՟ ߎ䗔
2,1线性表的定义和基本操作 2,2线性表的顺序存储结构 2.3线性表的链式存储结构 2.4线性表的应用举例 西顺大学教学与信息学院
2.1 㒓ᗻ㸼ⱘᅮНᴀ᪡ 2.2 㒓ᗻ㸼ⱘ乎ᑣᄬټ㒧ᵘ 2.3 㒓ᗻ㸼ⱘ䫒ᓣᄬټ㒧ᵘ 2.4 㒓ᗻ㸼ⱘᑨ⫼В՟
21线性表的定义和基 本操作 2.1.1线性表的定义 线性表是由n(n≥0)个类型相同的数据元素组成 的有限序列。通常表示成下列形式: L=(aj, a2 a;i s a; a, i+1geeegan 其中:L为线性表名称,习惯用大写书写; 为组成该线性表的数据元素,习惯用小写书写; 线性表中数据元素的个数被称为线性表的长度, 当n=0时,线性表为空,又称为空线性表。 西顺大学教学与信息学院
2.1 㒓ᗻ㸼ⱘᅮН ᴀ᪡ 2.1.1 㒓ᗻ㸼ⱘᅮН 㒓ᗻ㸼ᰃ⬅n˄nı0˅Ͼ㉏ൟⳌৠⱘ᭄ܗ㋴㒘៤ ⱘ᳝䰤ᑣ߫DŽ䗮ᐌ㸼⼎៤ϟ߫ᔶᓣ˖ L=( a1 , a2 ,...,ai-1,ai ,ai+1,...,an ) ݊Ё˖LЎ㒓ᗻ㸼ৡ⿄ˈдᛃ⫼ݭкݭ˗ aiЎ㒘៤䆹㒓ᗻ㸼ⱘ᭄ܗ㋴ˈдᛃ⫼ᇣݭкݭ˗ 㒓ᗻ㸼Ё᭄ܗ㋴ⱘϾ᭄㹿⿄Ў㒓ᗻ㸼ⱘ䭓ᑺˈ ᔧn=0ᯊˈ㒓ᗻ㸼Ўぎˈজ⿄Ўぎ㒓ᗻ㸼DŽ
举例 La=(34,89,765,12,90,-34,22)数据元 素类型为int Ls=("Hly; World"," China"," Welcome")数据 元素类型为 string Lb=( book,, book, book)数据元素类型为下列 所示的结构类型: struct bookinfo int No: 图书编号 char *names /图书名称 char *auther ∥作者名称 西顺大学教学与信息学院
В՟ La=˄34ˈ89ˈ765ˈ12ˈ90ˈ-34ˈ22˅ ᭄ܗ ㋴㉏ൟЎintDŽ Ls=(²Hello² , ²World² , ²China² , ²Welcome²) ᭄ ܗ㋴㉏ൟЎstringDŽ Lb=(book1 ,book2 ,...,book100) ᭄ܗ㋴㉏ൟЎϟ߫ ᠔⼎ⱘ㒧ᵘ㉏ൟ˖ struct bookinfo{ int No; //к㓪ো char *name; //кৡ⿄ char *auther; //㗙ৡ⿄ ...; }
2.1.2线性表的基本操作 1.初始化线性表 L Initlis(U 2.销毁线性表 L Destory list(l) 3.清空线性表 L Clearlisti(L 4.求线性表L的长度 Listlength(L) 5.判断线性表L是否为空 IsEp① 6.获取线性表L中的某个数据元素内容 GetElem(L,i, e) 7.检索值为e的数据元素 Locateelem(L,e) 8.返回线性表L中e的直接前驱元素 Priorelem(L,e) 9.返回线性表L中e的直接后继元素 Nextelem(L,e) 10.在线性表L中插入一个数据元素 ListInsert(l,i,e) 1l.删除线性表L中第个数据元素 ListDelete(Lie) 西顺大学教学与信息学院
2.1.2 㒓ᗻ㸼ⱘᴀ᪡ 1. ߱ྟ࣪㒓ᗻ㸼L InitList(L) 2. 䫔↕㒓ᗻ㸼L DestoryList(L) 3. ⏙ぎ㒓ᗻ㸼L ClearList(L) 4. ∖㒓ᗻ㸼Lⱘ䭓ᑺ ListLength(L) 5. ߸ᮁ㒓ᗻ㸼Lᰃ৺Ўぎ IsEmpty(L) 6. 㦋প㒓ᗻ㸼LЁⱘᶤϾ᭄ܗ㋴ݙᆍ GetElem(L,i,e) 7. Ẕ㋶ؐЎeⱘ᭄ܗ㋴ LocateELem(L,e) 8. 䖨ಲ㒓ᗻ㸼LЁeⱘⳈࠡ偅ܗ㋴ PriorElem(L,e) 9. 䖨ಲ㒓ᗻ㸼LЁeⱘⳈৢ㒻ܗ㋴ NextElem(L,e) 10. 㒓ᗻ㸼LЁᦦܹϔϾ᭄ܗ㋴ ListInsert(L,i,e) 11. ߴ䰸㒓ᗻ㸼LЁiϾ᭄ܗ㋴ ListDelete(L,i,e)