第二讲 数据结构.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二讲 数据结构.ppt

第二讲 数据结构 data structure * 提纲 一、数据结构及其表示 二、线性表 三、栈和队列 四、线性链表 五、数组 六、树和二叉树 七、图 一、数据结构及其表示 数据(data) 所有能被计算机识别、存储和处理的符号的集合(包括数字、字符、声音、图像等信息 ) 数据元素(data element) 数据这个集合中的一个个体,是数据的基本单位,由数据项构成 数据项(data item):数据的最小单位 数据结构(data structure) 相互之间存在特定关系的数据元素的集合 数据对象(data object) 由性质相同(类型相同)的数据元素组成的集合。 数据对象是数据的一个子集。 数据结构 相互之间存在一种或多种特定关系的数据元素的集合,表示为 数据结构的类型 数据元素之间的关系称为结构。 四类基本结构: 数据结构的存储 物理存储结构 数据的逻辑结构在计算机存储器内的表示(或映像)。它依赖于计算机。数据元素的结点(结点)映射。 分为:顺序存储结构、链式存储结构、索引存储结构、散列存储结构 数据结构的处理(运算) 插入、删除、修改、查找、排序 数据结构涵盖的内容 提纲 一、数据结构及其表示 二、线性表 三、栈和队列 四、线性链表 五、数组 六、树和二叉树 七、图 二、线性表(linear list) 一组数据元素构成 数据元素可以是一个数据项,也可以是若干数据项组成的记录(record) 由简单项构成的线性表,如: (A,B,C,D,----) 由记录构成的线性表,每个记录有若干个数据项,如某学校教职工的基本情况表: (0001,0002,0003,-----),0001—关键项,代表一条记录;每条记录里有:姓名、性别、年龄、---- 文件:多个记录组成的线性表 2.1线性表 2.2 对线性表常用运算 2.4 线性表在顺序存储结构下的插入与删除 1、线性表的插入 提纲 一、数据结构及其表示 二、线性表 三、栈和队列 四、线性链表 五、数组 六、树和二叉树 七、图 3.1 栈 3、栈的应用举例 子程序调用——栈的作用:现场保护与恢复 Main() {… // push(data_main); sub_routine1(); // pop(data_main) … } //data_main表示调用sub_routine1之前的main函数现场数据 // 后面data_subroutine1_0、data_subroutine1_1 表示第一次、第二次调用sub_routin2之前的现场数据 sub_routine1() { … //第一次调用sub_routine2 //push(data_subroutine1_0); sub_routine2(); // pop(data_subroutine1_0); … //第二次调用sub_routine2 //push(data_subroutine1_1); sub_routine2(); // pop(data_subroutine1_1); … } sub_routine2() { … } 提纲 一、数据结构及其表示 二、线性表 三、栈和队列 四、线性链表 五、索引和数组 六、树和二叉树 七、图 顺序表与链表的比较 线性表逻辑结构特点是,只有一个首结点和尾结点;除首尾结点外其他结点只有一个直接前驱和一个直接后继。简言之,线性结构反映结点间的逻辑关系是一对一(1:1)的。 问2:顺序存储和链式存储各有哪些优缺点? 顺序存储的三个优点: (1)方法简单,容易实现,没有使用指针。 (2)不用为表示结点间的逻辑关系而增加额外的存储开销。 (3)顺序表具有按元素序号随机访问的特点(时间复杂度O(1)) 。 顺序存储的两个缺点: (1)在顺序表中做插入删除操作时,平均移动大约表中一半的元素,因此对n较大的顺序表效率低(时间复杂度O(n) ) 。 (2)需要预先分配足够大的存储空间(估计过大,可能会导致顺序表后部大量闲置;预先分配过小,又会造成溢出)。 链表的优缺点恰好与顺序表相反。 问3:在什么情况下用顺序表比链表好? 提纲 一、数据结构及其表示 二、线性表 三、栈和队列 四、线性链表 五、索引和数组 六、树和二叉树 七、图 索引存储结构 基本方法 将一个具有n个结点的线性表,按性质分成m个子表(长度可以不等),然后分别存储此m个子表, 另设一个索引表.索引表具有m个结点,每个结点存储一个与子表性质有关的信息,以及子表中第一个结点的存储地址.如果需要,还可以存储子表的其它有信息.即索引表中的结点结构(数据项的个数)可以根据实际情况来设置,但对于同一索引表中的各结点结构应相同. 线性表的划分 1、线性表

文档评论(0)

xinshengwencai + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:5311233133000002

1亿VIP精品文档

相关文档