[理学]2011考研计算机数据结构讲义-32.doc

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

数据结构 绪论 数据元素:数据元素是数据的基本单位 一个数据元素可由若干数据项组成,数据项是数据不可分割的最小单位 数据的逻辑结构分为:集合、线性结构(线性表)、非线性结构(树和图) 存储结构:顺序存储(实现随机存取)、链式存储(只能顺序存取)、索引存储、散列存储 数据结构在计算机中的表示称为数据的物理结构,又称为存储结构 一、线性表 大纲要求: (一) 线性表的定义和基本操作 (二) 线性表的实现 1. 顺序存储结构 2. 链式存储结构 3. 线性表的应用 知识点: 深刻理解数据结构的概念,掌握数据结构的“三要素”:逻辑结构、物理(存储)结构及在这种结构上所定义的操作“运算”。 时间复杂度和空间复杂度的定义,常用计算语句频度来估算算法的时间复杂度。 以下六种计算算法时间的多项式是最常用的。其关系为: O(1)O(logn)O(n)O(nlogn) O(n2)O(n3) 指数时间的关系为: O(2n)O(n!)O(nn) 线性表的逻辑结构,是指线性表的数据元素间存在着线性关系。主要是指:除第一及最后一个元素外,每个结点都只有一个前趋和只有一个后继。线性表的顺序存储方式及其在具体语言环境下的两种不同实现:表空间的静态分配和动态分配。。循环链表中设置尾指针而不设置头指针的好处以下几种常用链表的特点和运算:单链表、循环链表双向链表双向循环链表。即其各自适用的场合。 通过对它们的讨论可知它们各有优缺点,顺序存储有三个优点: (1)方法简单,各种高级语言中都有数组,容易实现。 (2)不用为表示结点间的逻辑关系而增加额外的存储开销。 (3)顺序表具有按元素序号随机访问的特点。 但它也有两个缺点: (1)在顺序表中做插入删除操作时,平均移动大约表中一半的元素,因此对n较大的顺序表效率低。 (2)需要预先分配足够大的存储空间,估计过大,可能会导致顺序表后部大量闲置;预先分配过小,又会造成溢出。 链表的优缺点恰好与顺序表相反。 在实际中怎样选取存储结构呢? (1)基于存储的考虑 对线性表的长度或存储规模难以估计时,不宜采用顺序表;链表不用事先估计存储规模,但链表的存储密度较低,显然链式存储结构的存储密度是小于1的。 (2)基于运算的考虑 在顺序表中按序号访问ai的时间性能时O(1),而链表中按序号访问的时间性能O(n),所以如果经常做的运算是按序号访问数据元素,显然顺序表优于链表;而在顺序表中做插入、删除时平均移动表中一半的元素,当数据元素的信息量较大且表较长时,这一点是不应忽视的;在链表中作插入、删除,虽然也要找插入位置,但操作主要是比较操作,从这个角度考虑显然后者优于前者。 (3)基于环境的考虑 顺序表容易实现,任何高级语言中都有数组类型,链表的操作是基于指针的,相对来讲前者简单些,也是用户考虑的一个因素。 总之,两种存储结构各有长短,选择那一种由实际问题中的主要因素决定。通常“较稳定”的线性表选择顺序存储,而频繁做插入删除的即动态性较强的线性表宜选择链式存储。 练习题: (一)选择题: 1.以下那一个术语与数据的存储结构无关?( A ) A.队列 B. 哈希表 C. 线索树 D. 双向链表 2、一个算法应该是( B )。 A.程序 B.问题求解步骤的描述 C.要满足五个基本特性 D.A和C. 3、数据结构中,与所使用的计算机无关的是数据的( C ) A.存储结构 B.物理结构 C.逻辑结构 D.物理结构和存储结构 4. 算法的计算量的大小称为计算的( B )。 A.效率 B.复杂性  C.现实性  D.难度 5.下列说法,不正确的是() A.数据元素是数据的基本单位 B.数据项是数据中不可分割的最小可标识单位 C.数据可由若干个数据元素构成 D.数据项可由若干个数据元素构成 6.连续存储设计时,存储单元的地址( A )。 A.一定连续 B.一定不连续 C.不一定连续 D.部分连续,部分不连续 线性表( a1,a2,…,an)以链接方式存储时,访问第i位置元素的时间复杂性为( C )。 A.O(i) B.O(1) C.O(n) D.O(i-1) 对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为( C )。 A.O(n) O(n) B. O(n) O(1) C. O(1)

文档评论(0)

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

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

1亿VIP精品文档

相关文档