- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
北京理工大学 数据结构课件 2.2 线性表-顺序表.ppt
BIT GaoChunXiao Notes of Data Structure * 第二章 线性表 1 2 3 4 5 6 7 8 9 * 本章内容 2.1 线性表的类型定义 2.2 线性表类型的实现 ? 顺序映象 2.3 线性表类型的实现 ? 链式映象 * 2.2.1 顺序表示及其特点 2.2.2 数据结构定义 2.2.3 顺序表的初始化操作 2.2.4 顺序表的插入操作 2.2.5 顺序表的删除操作 2.2.6 用顺序表实现合并操作LC=LA + LB * 2.2.1 顺序表示及其特点 顺序映象—— 以 x 的存储位置和 y 的存储位置之间某种关系表示逻辑关系 x, y 。 最简单的一种顺序映象方法是: 用一组地址连续的存储单元依次存放线性表中的数据元素。 a1 a2 … ai-1 ai … an 线性表的起始地址 称作线性表的基地址 * 2.2.1 顺序表示及其特点 以“存储位置相邻”表示有序对 ai-1,ai 即:LOC ai LOC ai-1 + C C是一个数据元素所占存储量 所有数据元素的存储位置均取决于第一个数据元素的存储位置 LOC ai LOC a1 + i-1 ×C 小结:顺序表的特点 用连续的存储单元存放线性表的元素 采用一维数组存放 。 元素存储顺序与元素的逻辑顺序一致。 读写元素方便 ,通过下标即可指定位置。 * a1 a2 … ai-1 ai … an 线性表的起始地址 称作线性表的基地址 * 2.2.2 顺序表数据结构定义 #define LIST_INIT_SIZE 80 // 线性表存储空间的初始分配量 #define LISTINCREMENT 10 // 线性表存储空间的分配增量 typedef struct ElemType *elem; // 存储空间基址 int length; // 当前长度 int listsize; // 当前分配的存储容量 // 以sizeof ElemType 为单位 SqList; // 俗称顺序表 * 0 1 …. i-2 i-1 …. n-1 …… 顺序表 a1 a2 … ai-1 ai … an ... L.elem+L. length-1 L.elem+L. listsize-1 elem length listsize L 注意:由于数组的下标从“0”开始,表中第 i 个元素是 L.elem[i - 1]. typedef struct ElemType *elem; int length; int listsize; SqList; // 顺序表 SqList L; * 2.2.3 顺序表的初始化操作 Status InitList_Sq SqList L // 构造一个空的线性表 L.elem ElemType* malloc LIST_INIT_SIZE ? sizeof ElemType ; if !L.elem exit OVERFLOW ; L.length 0; L.listsize LIST_INIT_SIZE; return OK; // InitList_Sq typedef struct ElemType *elem; int length; int listsize; SqList; // 顺序表 * 2.2.4 顺序表的插入操作 ListInsert L, i, e // 插入元素 在顺序表L的第 i 个元素之前插入新的元素e, 把e插入到第 i 个元素的位置 i 的合法范围为 1≤i≤L.length+1 0 1 …. i-2 i-1 …. n-1 a1 a2 … ai-1 ai … an e e * 操作的过程: ListInsert L, 6, 30 3 41 6 1 18 25 31 3 41 6 1 18 25 31 30 3 41 6 1 18 25 31 3 41 6 1 18 30 25 31 3 41 6 1 18 30 25 31 * 操作的过程: ListInsert L, 6, 30 3 41 6 1 18 25 31 3 41 6 1 18 30 25 31 3 41 6 1 18 25 31 p q p 3 41 6 1 18 25 31 p q L.elem[i-1] ; p L.elem[L.length-1] ; * p+1 *p; p--; 3 41 6 1 18 25 31 p * p+1 *p; *q e; p q; 插入操作 * 操作步骤 判断插入位置是否合法: 1≤i≤L.length+1 初
您可能关注的文档
最近下载
- 慢性阻塞性肺病管理.pptx VIP
- 医疗器械经营企业质量管理体系文件(2026版).doc VIP
- 江西省建筑工人实名制管理服务信息平台操作手册(项目端).docx
- 贵阳市2026届高三年级摸底考试数学试卷(含答案).pdf
- 《数字电路与逻辑设计》课程教学大纲.docx VIP
- DaVinci-Resolve-Speed-Editor-达芬奇快编键盘操作说明.docx VIP
- 小学劳动教学课例《学做水果茶》教学设计.pdf VIP
- 科学计算语言Julia及MWORKS实践单元练习题及答案.docx VIP
- 检验科临床检验基础试题及答案2025版.docx VIP
- DB15T 4010-2025 温室气体 产品碳足迹量化方法与要求 铁合金.pdf VIP
文档评论(0)