- 1、本文档共91页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构汇总
数 据 结 构 Data Structure 数据的逻辑结构: 含义:反映数据元素之间逻辑关系的数据结构。包含两方面的信息: 第一,表示数据元素的信息; 第二,表示各数据元素之间的前后件关系。 例1: B=(D,R),其中D是数据对象,R是该对象中所有数据成员之间的关系的有限集合。若有 D={1,2,3,4},R={(1,2),(2,3),(3,4)},则我们可以用图的形式画出该数据结构B: 例2:家庭成员数据结构:B=(D,R), D={父亲,儿子,女儿},R={(父亲,儿子),(父亲,女儿)},则图形表示如下: 例3:课程关系数据结构:B=(D,R), D={教师1,教师2,班级1,班级2,班级3},R={(教师1,班级1),(教师1,班级3),(教师2,班级1),(教师2,班级2),(教师2,班级3)},则图形表示如下: 数据的逻辑、物理结构 数据的逻辑结构—只抽象反映数据元素的逻辑关系 数据的存储(物理)结构—数据的逻辑结构在计算机存储器中的实现 分为: 顺序存储结构 借助元素在存储器中的相对位置来表示 数据元素间的逻辑关系 链式存储结构 借助指示元素存储地址的指针表示数据 元素间的逻辑关系 2. 线性表 线性表的类型定义 线性结构特点:在数据元素的非空有限集中 存在唯一的一个被称作“第一个”的数据元素 存在唯一的一个被称作“最后一个”的数据元素 除第一个外,集合中的每个数据元素均只有一个前驱 除最后一个外,集合中的每个数据元素均只有一个后继 线性表是一种典型的线性结构。 数据的运算是定义在逻辑结构上的,而运算的具体实现则是在存储结构上进行的。 2.1 顺序表上基本运算的实现 在c语言中,顺序表用一维数组来实现存储。 算法: 插入 删除 定义:线性表的插入是指在第I(1?i ? n+1)个元素之前插入一个新的数据元素x,使长度为n的线性表 线性表的插入是指在表的第i个位置上插入一个值为 x 的新元素,插入后使原表长为 n的表: (a1,a2,... ,ai-1,ai,ai+1,... ,an) 成为表长为 n+1 表: (a1,a2,...,ai-1,x,ai,ai+1,...,an ) 。 i 的取值范围为1=i=n+1 。 顺序表上完成这一运算则通过以下步骤进行: (1) 将ai~an 顺序向下移动,为新元素让出位置; (2) 将 x 置入空出的第i个位置; (3) 修改 last 指针(相当于修改表长),使之仍指向最后一个元素。 算法如下: for(j=n;j=i;j--) a[j+1]=a[j]; //元素后移 a[i]=x; //插入元素 n++; //表长度增加1 删除 定义:线性表的删除是指将第i(1?i ? n)个元素删除,使长度为n的线性表 算法如下: for(j=i;jlen;j++) a[j]=a[j+1]; //元素前移 len--; //表长度减1 2.2 线性表的链式实现和表示 线性链表 线性链表的存储结构 单链表的基本运算 插入 删除 线性表的链式存储结构 特点: 用一组任意的存储单元存储线性表的数据元素 利用指针实现了用不相邻的存储单元存放逻辑上相邻的元素 每个数据元素ai,除存储本身信息外,还需存储其直接后继的信息 结点 数据域:元素本身信息 指针域:指示直接后继的存储位置 线性链表 实现 单链表的基本运算 插入 删除 单链表的插入 单链表的删除 3. 栈和队列 栈 栈是特殊的线性表,是操作受限的线性表,称限定性DS 栈定义 栈(stack) 栈的定义和特点 定义:限定仅在表尾进行插入或删除操作的线性表,表尾—栈顶,表头—栈底,不含元素的空表称空栈 特点:先进后出(FILO)或后进先出(LIFO) 堆栈操作?????? 栈的存储实现和运算实现 由于栈是运算受限的线性表,因此线性表的存储结构对栈也是适用的,只是操作不同而已。 顺序栈 链栈 约定:栈顶指针指向栈顶元素。 3.2 队列 队列是特殊的线性表,是操作受限的线性表,称限定性DS 3.2.1 队列的定义 队列的定义及特点 定义:队列是限定只能在表的一端进行插入,在表的另一端进行删除的线性表 队尾(rear)——允许插入的一端 队头(front)——允许删除的一端 队列特点:先进先出(FIFO) 顺序队列出入队 循环队列 计算循环队列元素个数方法: 若frontrear: 元素个数= rear-front 若frontrear 元素个数=n-(front-rear)
您可能关注的文档
- 政府投资项目代建制特许经营项目融资与招投标实务操作汇总.ppt
- 政府投资审计模式的解读与思考治理工程建设领域问题的方法汇总.doc
- 政治复习提纲_八年级上册汇总.doc
- 故宫场地稀缺资源介绍汇总.ppt
- 故障分析与反措基于PMU的故障测距新算法研究汇总.doc
- 效期商品管理制度汇总.doc
- 效能建设制度汇总.doc
- 教务处各科室工作职责汇总.doc
- 敏感陶瓷教学课件PPT汇总.ppt
- 教务培训汇总.ppt
- storytown练习及辅助阅读gr4 l28.pdf
- 哈尔滨太平桥百盛.pdf
- 摘自历史济目光全国教育会.pdf
- 人教版(2025)选择性必修二 Unit 1 Science and Scientists Reading for Writing课件(共41张PPT)(内嵌视频+音频).pptx
- 人教版(2025)选择性必修第二册Unit 1 Science and Scientists Reading and Thinking 课件(共16张PPT)(内嵌视频+音频).pptx
- 人教版(2025)选择性必修第一册Unit 3 Fascinating Parks Using Language Reading for Writing 课件(共24张PPT)(内嵌视频+音频).pptx
- 人教版(2025)选择性必修第一册Unit 1 People of Achievement Reading and Thinking 课件(共22张PPT)(内嵌视频+音频).pptx
- 人教版(2025)选择性必修第一册Unit 1 People of Achievement Discover Useful structures课件(共17张PPT)(内嵌视频+音频).pptx
- 人教版(2025)选择性必修 第二册 Unit 1 Science and Scientists Discovering useful structures 课件(共20张PPT)(内嵌视频+音频).pptx
- 人教版(2025)必修 第一册Unit 4 Natural Disasters Discovering Useful Structures 教学课件(共29张PPT)(内嵌视频+音频).pptx
文档评论(0)