- 1
- 0
- 约3.64千字
- 约 26页
- 2023-07-06 发布于广东
- 举报
项目三探索商品基本信息表的实现 — 线性表的应用03了解“商品信息表”采用的线性表的数据结构,了解线性表的属性。学习目标02知道线性表主要采用的两种存储结构,并分析它们的优缺点。熟悉使用python 程序实现线性数据结构的插入和删除。0101情景导入导入通常,超市销售的商品品种繁多每种商品都含有品名、零售价、库存数等多种信息,如表 2-4 所示。为了更好地管理,超市必须保存这些商品信息,还要做到及时更新,如添加、删除和修改商品信息,那么他们是怎么实现这些操作呢?通常超市都采用数据库来实现管理,而实际编程实现这些数据管理功能时,必须使用有效的数据结构技术来支持各种数据操作的执行。1. 问题分析为了实现使用计算机对超市商品进行管理,需要按照商品的不同分类,建立“商品信息表”,然后通过条码扫描器读取商品条码,录入每一种商品的具体数据。上页的商品信息表中,每一个数据元素有相同的数据项。若将表中的每一个数据元素表示为 商品i (i 为原表中的商品序号),可以得到按原序号顺序排列的序列,如图 2-8所示。从表中可以看到,各个数据元素(商品)之间存在着一对一的关系,自上而下顺序排列。此表也是线性表。思考与讨论1. 在日常生活中,线性表的例子比比皆是。例如,26 个英文字母的字母表:A,B,C,D,...,Z就是一个线性表。想一想,生活中还有哪些这样的例子?2. 上一个项目中给出的抽象数据类型是否适用于商品信息表?为什么?2. 设计算法“商品信息表”——线性表不能被计算机直接处理,需要为它选择合适的存储结构,然后设计算法编程实现相关功能,如插入一条商品信息或者删除一条商品信息等。线性表既可以采用顺序存储结构存储,也可以采用链式存储结构存储。(1) 采用顺序存储结构线性表采用顺序结构存储时,称之为顺序表。很多高级程序设计语言的数(array)在计算机内的表示也是顺序结构,为此,可以用数组来表示顺序表。假设用数组 s来存放商品信息表的数据元素,则每个数据元素都可以采用 s[0]、s[1]、s[2]、s[3]……表示,其中 s 为数组名,0,1,2,3……为数组下标,用来标识数据元素的位置和顺序。如图 2-9 所示(为方便说明,假设目前只有 4 条商品数据)。图 2-9 数组若要在商品 1 后插入(insert)商品 5,则插入位置后的每个数据元素都要向后移动空出插入位置然后插入商品 5,具体过程如图 2-10 所示。图 2-11 数组的删除操作而删除(delete)操作恰好是插入操作的逆过程。若需将插入的商品 5 删除,则须将该数据元素后的所有数据元素依次向前移动,使后一数据元素覆盖前一数据元素。最终,依旧保证了数据元素存储的连续性,如图 2-11 所示。图 2-10 数组的插入操作(2) 采用链式存储结构线性表采用链式存储结构存储时,称为链表。链表中的数据可以是不连续存储的。链表不要求逻辑上相邻的数据元素在物理位置上也相邻,数据元素之间通过指针链接,如图2-12 所示。若要删除一个商品,只要将须删除数据元素的前一个数据元素的指针指向下一个数据元素即可,如图 2-14 所示。若要在商品 1 后插入商品 5,先要切断插入位置前后的数据链,然后将断开的链连接到插入元素,具体过程如图2-13 所示。图 2-14 链表的删除操作图 2-13 链表的插入操作活?动3.4 现需要删除商品 3 数据元素,请在图 2-15 的基础上,用图示方式呈现全过程(数组和单链表两种方式)3.5 完成在商品 3 后插入商品 5 的算法步骤设计。3. 程序实现根据上述算法 , 可以编写程序实现“商品信息表”的数据插入与删除。用 Python 语言实现顺序存储结构类型可以采用定义类的方式。商品信息定义如下:活?动3.6 若采用数组,请参考配套资源中的“商品表(数组).py”,完成以下程序,实现“商品信息表”的数据插入和删除,并上机运行。 3.7 若采用链表,请参考配套资源中的“商品表(链表).py”,完成以下实现“商品信息表”的数据插入和数据删除的程序。02知识链接1.线性表线性表是 n(n ≥ 0)个数据特性相同的元素构成的有限序列。记为(a 1 , a 2 , …, a i-1 , a i ,a i+1 , …, a n ),其中 a i-1 是 a i 的直接前驱元素,a i+1 是 a i 直接后继元素,a 1 无前驱元素,a n 无后继元素。n 称为线性表的长度,当 n = 0 时,称为空表。例如,商品信息表 =(商品 1,商品 2,商品 3,商品 4,商品 5,商品 6……)线性表的抽象数据类型表示如下:线性表的存储线性表可以使用顺序存储结构存储(此时称为顺序表),也可以使用链式存储结构存储(此时称为链表)。1. 线性表的顺序存储大多数高级程序语言的数组在计算机内的
您可能关注的文档
- 细胞膜的结构与功能【知识精讲+拓展提升】 高考生物一轮复习 (全国通用).pptx
- Unit+1+Teenage+life+Reading+and+Thinking+课件【知识精讲+拓展提升】 高一英语人教版(2019)必修第一册.pptx
- Unit+1+Listening+and+Speaking+课件【知识精讲+拓展提升】 高中英语人教版(2019)必修第一册.pptx
- 光合作用的影响因素及应用课件【知识精讲+拓展提升】高一上学期生物人教版必修1.pptx
- Unit+5+The+value+of+money+Vocabulary+课件【知识精讲+拓展提升】 高中英语人教版(2019)+必修第三册.pptx
- Unit+6+Writing+workshop+课件【知识精讲+拓展提升】 高中英语北师大版(2019)选择性必修第二册.pptx
- 高三生物一轮复习课件【知识精讲+拓展提升】主要细胞器的结构和功能.pptx
- Unit+1+Listening+and+speaking【知识精讲+拓展提升】 高中英语人教版(2019)必修第二册.pptx
- 蛋白质工程的原理和应用课件【知识精讲+拓展提升】高二下学期生物人教版选择性必修3.pptx
- 高三生物一轮复习课件【知识精讲+拓展提升】 群落及其演替.pptx
- 统编版2025年春季新版七年级下册历史 第21课 明清时期的科技与文化 教案.docx
- 雅安雨城法院书记员招聘考试真题库2025.docx
- 2026届安徽合肥市高考一模高考语文试卷试题(含答案详解).pdf
- 【专题研究】国内外城市更新研究的最新进展.pdf
- 【专题研究】老旧城区改造居民满意度影响因素研究——以遂宁市老旧城区改造为例.pdf
- 【专题研究】关于旧城空间改造理论与创意设计案例的几点思考.pdf
- 西藏拉萨市高三下学期期末物理备考重点详解.docx
- 泾县法院书记员招聘笔试真题2025.pdf
- 2026年春【苏教版】-六年级数学下册-面积的变化.pptx
- 2026年春【苏教版】-六年级数学下册-7.pptx
最近下载
- 病理性Q波课件.pptx VIP
- 电气控制与PLC应用技术全套课件.pptx VIP
- 穿越软硬突变地层盾构隧道管片及接头力学性能的多维度解析与工程应用.docx
- 第3课 “开元盛世”与唐朝经济的繁荣(同步教学课件)2025-2026学年七年级历史下册新授课课件.pptx VIP
- 《中国传统戏曲艺术》课件.ppt VIP
- 闽江特大桥主墩单壁钢吊箱围堰.doc VIP
- 第32讲_认定股东身份的基本规定、名义股东与实际出资人、股东的权利与义务概述、股东查阅权.pdf VIP
- 《老年社会工作》全套教学课件.pptx
- 矿山运输与提升:露天矿汽车运输PPT教学课件.pptx
- 管理学基础-第4版-张云河-1.2管理者认知.pptx VIP
原创力文档

文档评论(0)