- 1、本文档共175页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 简单数据结构
算法与数据结构 第3章 简单数据结构 简单数据结构 简单的数据结构,包括顺序表、链表、栈、队列和广义表,它们和上一章介绍过的数组和串一起都同属于线性结构。 在线性结构中,数据元素之间的关系是一对一的次序关系,其逻辑特征为: 存在一个惟一地被称作“第一个”的数据元素; 存在一个惟一地被称作“最后一个”的数据元素; 除第一个之外,每个数据元素都只有一个前趋; 除最后一个之外,每个数据元素都只有一个后继。 第3章 简单数据结构 3.1 顺序表 3.1.1 线性表的基本概念 3.1.2 线性表的顺序存储结构——顺序表 3.1.3 顺序表上的基本运算 线性表的基本概念 线性表(Linear List)是一种最简单最常用的数据结构。 一个线性表是由n(n≥0)个相同类型数据元素(结点)组成的有限序列。表中有且仅有一个第一个结点,它没有前趋而只有一个后继;有且仅有一个最后一个结点,它没有后继而只有一个前趋;其余结点都只有一个前趋和一个后继。 根据结点之间的关系可以排成一个线性序列: (a1,a2,a3,a4,……,an) 其中:a1为第一个结点,an为最后一个结点;对于i=2…n,ai-1是ai的前趋,ai是ai-1的后继;n称作线性表的长度,n为0时称作空表。 线性表的例子 线性表中的数据元素(结点)可以是一个数、一个符号、一页书、一个记录等。下面给出线性表的几个例子: (“A”,“B”,……,“Z”)是一个线性表,称作字母表,表中的数据元素都是单个大写字母字符; (3,7,9,12,66,87)是一个线性表,表中的每个数据元素都是一个整数; 学生成绩表也是一个线性表,表中的数据元素为描述一个学生高考情况的一个记录,它由姓名、准考证号、数学、语文、英语、理综、总分七个数据项组成。 线性表的形式化定义 线性表的形式化定义如下: Linear List=(D,R) 其中:D={ai|ai∈Do,i=1,2,……,n,n≥0};R={ai-1,ai|ai-1,ai∈Do,i=2,3,……,n};Do为某个数据对象。 线性表是一种相当灵活的数据结构,其长度可根据需要增减,即对数据元素不仅可以访问,还可进行插入和删除。 线性表的基本运算 置空表setnull(L):将线性表L置为空表。 求长度length(L):计算线性表L中数据元素的个数。 取元素get(L,i):取出线性表L中第i个数据元素;要求i≤length(L)。 取前趋prior(L,x):取出线性表L中值为x的元素的前趋元素;要求x的位序大于1。 取后继next(L,x):取出线性表L中值为x的元素的后继元素;要求x的位序小于length(L)。 定位序locate(L,x):确定元素x在线性表L中的位置,并给出位置序号;若L中无x返回0。 线性表的基本运算(续) 插入insert(L,x,i):在线性表L中第i个位置上插入值为x的新元素,使表长增1;要求1≤i≤length(L)+1。 删除delete(L,i):删除线性表L中的第i个元素,使表长减1;要求1≤i≤length(L)。 利用这些基本运算,可以实现线性表的其它较复杂运算,如线性表的分拆、合并、逆置等。 在实际应用中,当线性表作为一个运算对象时,所需的运算种类不一定相同,不同的运算将构成不同的抽象数据类型。 这里所给出的运算是定义在逻辑结构上的抽象运算,而运算的实现要依赖于所采用的存储结构。 3.1 顺序表 3.1.1 线性表的基本概念 3.1.2 线性表的顺序存储结构——顺序表 3.1.3 顺序表上的基本运算 线性表的顺序存储结构—顺序表 顺序表(sequential list)是用一组地址连续的存储单元依次存放线性表中的各个数据元素,是一种最简单最自然的线性表存储方法。 这组地址连续的存储空间的大小依线性表中的数据元素个数而定,线性表中第一个元素存放在这组空间的开始处,第二个元素紧跟着存放在第一个元素之后,……,余类推。 显然,顺序表中相邻的数据元素在计算机内的存储位置也相邻; 换句话说,顺序表以数据元素在计算机内的物理位置相邻来表示数据元素在线性表中的逻辑相邻关系。 线性表的存储地址计算公式 由于线性表中的数据元素具有相同的类型,所以可以很容易地确定顺序表中每个数据元素在存储空间中与起始单元的相对位置; 假定线性表中每个数据元素需要占用c个存储单元,loc(a1)是第一个数据元素的存储地址(也称作基地址),则第i个数据元素的存储地址可由下式确定: loc(ai)=loc(a1)+(i-1)*c 其中:1≤i≤length(L)+1。 显然,顺序表是一种可随机存取的数据结构。 线性表的顺序存储结构示意图
您可能关注的文档
- high speed stir model.ppt
- 2004ApacheConHigh-speedObjectWebLogger.ppt
- Ultrasonic Cleaner超声波清洗机.doc
- 16-HighSpeedLANs.ppt
- 宝石名称对照表.doc
- 第一篇八动词学习的啊学习的武器学习的武器.doc
- 本人的高考英语词组整理学习的啊学习的武器学习的武器.doc
- 修改EXCHANGE默认的收发邮件大小是10M.docx
- 一维字符数组大小写转换及字符与数字转换.doc
- 百家讲坛--9月9日 空中霸主—翼龙 汪筱林.doc
- 小学科学:ESP8266智能插座电路原理与动手实践研究教学研究课题报告.docx
- 《金融开放浪潮下我国多层次监管体系构建与创新研究》教学研究课题报告.docx
- 区域教育质量监测中人工智能应用的数据质量分析与优化策略教学研究课题报告.docx
- 《金融科技监管中的数据治理与合规性要求》教学研究课题报告.docx
- 《3D打印技术在航空航天领域中的多材料制造与复合材料应用》教学研究课题报告.docx
- 《绿色金融发展中的政府职能与市场机制研究》教学研究课题报告.docx
- 《植物工厂多层立体栽培光环境调控技术对植物生长发育节律的调控机制探讨》教学研究课题报告.docx
- 销售团队年度业绩总结.docx
- 银行风险管理与金融危机防范.docx
- 银行网络攻击预警与快速响应机制.docx
最近下载
- 2022医院医疗机构开展违反中央八项规定精神突出问题专项治理的实施方案(详细版).pdf VIP
- 半导体工艺炉的炉门及半导体工艺炉.pdf VIP
- 测绘行业安全生产汇报.pptx VIP
- 半导体后端工艺半导体封装的作用、工艺和演变.docx VIP
- 半导体工艺原理--半导体工艺原理(贵州大学).ppt VIP
- 麦肯锡中国银行业CEO季刊(2020年秋)-麦肯锡-224页正式版.pdf VIP
- 走进潮汕文化ppt课件(优质ppt).pptx
- DG_TJ 08-2439-2024 建筑工程“多测合一”技术标准(正式版).pdf VIP
- Camera客观标准测试.pdf VIP
- 2024年湖北省恩施州恩施市六角亭街道招聘社区工作者真题参考答案详解.docx VIP
文档评论(0)