- 2
- 0
- 约4.81千字
- 约 26页
- 2018-06-09 发布于河南
- 举报
第11章 数据结构和数据抽象
程序设计基础(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
您可能关注的文档
- 畜禽常见的病原微生物.ppt
- 疾病概论_临床医学概要.ppt
- 病史采集表格.doc.doc
- 病例对照(研).ppt
- 甾体激素_药物化学.ppt
- 病毒学技术-病毒的培养.doc
- 病毒灵毒性分析报告.doc
- 痛风患者饮食有宜忌.doc
- 痛风特效药.doc
- 癌症忌口注意事项.doc
- 初中九年级英语Unit 13环境保护主题听说整合教学设计.docx
- 85分式方程及其解法课件人教版数学八年级上册.pptx
- 基于核心素养的博物馆主题说明文写作教学设计与实施——以九年级英语为例.docx
- 53一次函数的意义第课时课件浙教版八年级数学上册.pptx
- 大单元视角下“人民民主政权的巩固”与历史关键能力进阶教学设计——以初中历史中考复习课为例.docx
- 五年级数学下册典型例题解析人教版期末重点攻克.pptx
- 小学四年级信息技术《智启信息时代:查找网上信息的基石》教学设计及反思.docx
- 大疆域·大人口·大战略:中国国家空间认知的初步建构.docx
- 人教版(一年级起点)小学英语四年级上册Revision 1 Lesson 2教学设计.docx
- 大单元结构化复习:旧民主主义革命时期(18401919)的内忧外患与救亡图存.docx
最近下载
- 2026年国考《申论》(副省级)试卷答案解析.pdf VIP
- 火力发电工程建设标准强制性条文执行表 土建分册.pdf VIP
- 2篇文:在带头固本培元、增强党性方面等“五个带头”对照检查材料2026年.docx VIP
- 过敏性紫癜ppt(共35张PPT).pptx VIP
- 基于BIM的ZN花园14号住宅楼工程清单与招标控制价编制.doc VIP
- 基于BIM工程量清单的编制.docx VIP
- 带头固本培元、增强党性方面存在的问题及下一步整改措施(“五个带头”8篇精选).docx VIP
- 四川省建筑工程劳动量定额、时间定额和主要施工机械台班产量定额.pdf
- 十八项护理核心制度最新.docx VIP
- 采购部门岗位职责与工作流程规范.docx VIP
原创力文档

文档评论(0)