- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
程序设计基础(C语言)wh 第 十一 章 数据结构和数据抽象 本章内容 11.1 数据抽象 11.2 线性表 11.3 堆栈 11.4 队列 小 结 11.1 数据抽象 11.1.1 数据结构和数据类型 数据结构用来反映数据的内部构成 ,有逻辑上的数据结构和物理上的数据结构之分 。 数据类型是一个值的集合和定义在此集合上的一组操作的总称。 数据结构是指计算机处理的数据元素的组织形式和相互关系,数据类型是某种程序设计语言中已实现的数据结构。在程序设计语言提供的数据类型支持下,可以根据从问题中抽象出来的各种数据模型,逐步构造出描述这些数据模型的各种新的数据结构。 11.1.2 抽象数据类型 抽象数据类型(abstract data type, ADT)是用户进行软件设计时,从问题的数学模型中抽象出来的逻辑数据结构和逻辑数据结构上的一组操作,而不考虑计算机的具体存储结构和操作的具体实现算法。 抽象数据类型可用(D, S, P)三元组表示。其中,D是数据对象;S是D上的关系集;P是D中数据运算的基本运算集。其基本格式如下: ADT 抽象数据类型名 { 数据对象:数据对象的定义 数据关系:数据关系的定义 基本运算:基本运算的定义 } ADT抽象数据类型名 11.2 线性表 11.2.1 线性表的定义 线性表是具有相同特性的n(n≥0)个数据元素的有限序列,通常记为:(a1,a2,… ai-1,ai,ai+1,… an) 其中n为表长,n=0时称为空表。 特点: 均匀性:同一线性表的各数据元素必定有相同的数据类型和长度。 有序性:有唯一的“第一个”和“最后一个”元素,每个元素只有一个直接前趋和一个直接后续。 11.2.2 线性表的基本操作 线性表上的基本操作有: (1) 线性表初始化:InitList(L) (2) 求线性表的长度:ListLength (L) (3) 求线性表中某个数据元素值:GetElem(L,i,x) (4) 按元素值查找:LocateElem(L,x) (5) 插入操作:InsertList(L,i,x) (6) 删除操作:DeleteList(L,i,x) 说明: (1) 某数据结构上的基本运算,不是它的全部运算,而是一些常用的基本的运算,而每一个基本运算在实现时也可能根据不同的存储结构派生出一系列相关的运算来。 (2) 在上面各操作中定义的线性表L仅仅是一个抽象在逻辑结构层次的线性表,尚未涉及到它的存储结构,因此每个操作在逻辑结构层次上尚不能用具体的某种程序语言写出具体的算法。 11.2.3 线性表的顺序存储 从结构上考虑,通常线性表的存储类型可以描述如下: typedef struct {elemtype data[MAXSIZE]; int length; } SeqList; 定义一个顺序表:SeqList L;,有时定义一个指向SeqList类型的指针更为方便:SeqList *L; L是一个指针变量,指向SeqList类型的数据,线性表的存储空间通过如下语句获得: L=(SeqList *)malloc(sizeof(SeqList)); 11.2.4 顺序表上基本运算的实现 【算法11.1】顺序表的初始化 SeqList *Init_SeqList( ) { SeqList *L; L=(SeqList *)malloc(sizeof(SeqList)); L-length=0; return L; } 【算法11.2】插入 int Insert_SeqList(SeqList *L,int I,elemtype x) { int j ; if(i1||iL-length+1) return(0) ; /*检查插入位置的正确性*/ for(j=L-length;j=i;j--) L-data[j]=L-data[j-1] ; /*向后移动*/ L-data[i]=x ; /*新元素插入*/ L-length++ ; /*顺序表长度增加1*/ return (1) ; /*插入成功,返回*/ } 【算法11.3】删除 int Delete_SeqList(SeqList *L,int i) { int j; if
您可能关注的文档
- 程序设计基础——Visual Basic教程 第2版 教学课件 作者 周黎 钱瑛 周阳花 第1章 概述.ppt
- 程序设计基础——Visual Basic教程 第2版 教学课件 作者 周黎 钱瑛 周阳花 第2章 窗体.ppt
- 程序设计基础——Visual Basic教程 第2版 教学课件 作者 周黎 钱瑛 周阳花 第3章 基本控件.ppt
- 程序设计基础——Visual Basic教程 第2版 教学课件 作者 周黎 钱瑛 周阳花 第4章 Visual Basic程序设计基础.ppt
- 程序设计基础——Visual Basic教程 第2版 教学课件 作者 周黎 钱瑛 周阳花 第5章 基本控制语句.ppt
- 程序设计基础——Visual Basic教程 第2版 教学课件 作者 周黎 钱瑛 周阳花 第6章 程序设计基本算法.ppt
- 程序设计基础——Visual Basic教程 第2版 教学课件 作者 周黎 钱瑛 周阳花 第7章 高级数据类型.ppt
- 程序设计基础——Visual Basic教程 第2版 教学课件 作者 周黎 钱瑛 周阳花 第8章 过程.ppt
- 程序设计基础——Visual Basic教程 第2版 教学课件 作者 周黎 钱瑛 周阳花 第9章 文件.ppt
- 程序设计基础——Visual Basic教程 第2版 教学课件 作者 周黎 钱瑛 周阳花 第10章 高级控件.ppt
- 程序设计基础教程 C语言 教学课件 作者 杨有安 陈维 曹惠雅 徐欣欣 鲁丽习题答案 1第2章.doc
- 程序设计基础教程 C语言 教学课件 作者 杨有安 陈维 曹惠雅 徐欣欣 鲁丽习题答案 1第3章.doc
- 程序设计基础教程 C语言 教学课件 作者 杨有安 陈维 曹惠雅 徐欣欣 鲁丽习题答案 1第4章.doc
- 程序设计基础教程 C语言 教学课件 作者 杨有安 陈维 曹惠雅 徐欣欣 鲁丽习题答案 1第5章.doc
- 程序设计基础教程 C语言 教学课件 作者 杨有安 陈维 曹惠雅 徐欣欣 鲁丽习题答案 1第6章.doc
- 程序设计基础教程 C语言 教学课件 作者 杨有安 陈维 曹惠雅 徐欣欣 鲁丽习题答案 1第8章.doc
- 程序设计基础教程 C语言 教学课件 作者 杨有安 陈维 曹惠雅 徐欣欣 鲁丽习题答案 1第9章.doc
- 程序设计与C语言 第二版 教学课件 作者 马鸣远 第1 5章 第1章.ppt
- 程序设计与C语言 第二版 教学课件 作者 马鸣远 第1 5章 第2章.ppt
- 程序设计与C语言 第二版 教学课件 作者 马鸣远 第1 5章 第3章.ppt
最近下载
- 妊娠期哺乳期合理用药考核试题及答案(含抗菌药物).docx VIP
- 血液透析耗材业化建设环评报告.pdf VIP
- 《智能网联汽车高快速路测试技术规范》DB31T 1566-2025.docx VIP
- I如何设置WiFi密码才不会被WiFi万能钥匙破解.doc VIP
- 初中数学几何模型大全+经典题型(含答案).pdf VIP
- 静脉输液操作常见并发症的预防及处理规范.pdf VIP
- 虚拟仿真实验教学资源开发指南.pptx VIP
- 慢性肾功能不全护理查房.pptx VIP
- 2025年国培卫健、粤医云2月份基层护理培训项目考核答案(全).docx VIP
- 2025年宜昌市秭归县公开招聘5名社区专职工作人员 (网格员)笔试备考题库及答案解析.docx VIP
文档评论(0)