《数据结构(C++版)》第1篇 绪论.pptVIP

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1.1 什么是数据结构 在计算机发展的初期,人们使用计算机主要用于科学计算所涉及的数据对象比较单纯,程序设计以算法为中心,而无需重视数据结构。随着计算机应用领域的扩大和软、硬件的发展,非数值计算问题显得越来越重要。这类问题涉及的数据结构更为复杂,无法用数学方程加以描述。为了编写出一个好的程序,必须分析待处理的对象的特性以及各处理对象之间存在的关系,以便设计出合理的数据结构。 例1–2 四皇后问题 在一个棋盘上放置4个皇后,使得任意两个皇后在行、列和斜方向上都不在一条线上。在四皇后问题中,处理过程不是根据某种确定的计算法则,而是利用试探和回溯的探索技术求解。为了求得合理布局,在计算机中要存储布局的当前状态。从最初的布局状态开始,一步步地进行试探,每试探一步就形成一个新的状态,整个试探过程形成了一棵隐含的状态树,如图1.2所示 。 例1-3 教学计划编排问题 一个教学计划包含许多课程,在这些课程之间,有些必须按规定的先后次序进行,有些则没有次序要求。即有些课程之间有先修和后续的关系,有些课程可以任意安排次序。这种各个课程之间的次序关系可用一个称作图的数据结构表示,如图1.3所示。有向图中的每个顶点表示一门课程,如果从顶点vi到vj之间存在有向边 vi,vj,则表示课程i必须先于课程j进行。 4类基本逻辑结构示意图 数据结构包括数据的逻辑结构和数据的物理结构。 数据的逻辑结构可以看作是从具体问题抽象出来的数学模型,它与数据的存储无关。我们研究数据结构的目的是为了在计算机中实现对它的操作,为此还需要研究如何在计算机中表示一个数据结构。 数据结构在计算机中的标识(又称映像)称为数据的物理结构,或称存储结构。它所研究的是数据结构在计算机中的实现方法,包括数据结构中元素的表示及元素间关系的表示。 算法可以使用各种不同的方法来描述: ①最简单的方法是使用自然语言。用自然语言来描述算法的优点是简单且便于人们对算法的阅读。缺点是不够严谨。 ②可以使用程序流程图、N–S图等算法描述工具。其特点是描述过程简洁、明了。用以上两种方法描述的算法不能直接在计算机上执行,若要将它转换成可执行的程序,还有一个编程的问题。 ③可以直接使用某种程序设计语言来描述算法,不过直接使用程序设计语言并不容易,而且不太直观,常常需要借助于注释才能使人看明白。 ④为了解决理解与执行这两者之间的矛盾,人们常常使用一种称为伪码语言的描述方法来进行算法描述。 时间复杂度T(n)=n+1+n(n+1)+n×n+n2(n+1)+n×n×n=2n3+3n2+2n+1。当n→∞时,T(n)∝ n3,故算法时间复杂度的数量级为O(n3)。 在需要大O表示的任何分析中,低阶项和常数都可以被忽略。对于T(n)=O(8n2)或T(n)=O(n2+n),这两种情况,正确的形式是T(n)=O(n2)。 * * * * * * * * * * * * * * * * * * 第1章 绪论 第1章 绪论 背景:1946年世界上第一台计算机诞生,至今已有60多年的历史。在这期间,计算机的发展和应用已经渗透到了人类社会的各个领域,计算机加工和处理的对象也从纯粹的数值发展到了字符、图像、声音等各种具有一定结构的数据。为了更好地设计程序,以提高计算机在解决复杂问题时的处理效率,研究数据的特性和数据之间存在的关系就显得至关重要。“数据结构”作为计算机科学与技术领域中的一门专业基础课,它专门研究数据的特性和数据之间存在的关系,以及如何在计算机中有效地存取数据和处理数据。因此,“数据结构”是设计和实现编译程序、操作系统、数据库系统和大型应用程序的重要基础,它也是介于数学、计算机硬件和计算机软件之间的一门核心课程,并将随着人类社会的各个领域中计算问题的不断深入研究而继续发展。 当我们需要查找某个学生的有关情况的时候,或者想查询某个专业或年级的学生的有关情况的时候,只要我们建立了相关的数据结构,按照某种算法编写了相关程序,就可以实现计算机自动检索。由此,可以在学生信息检索系统中建立一张按学号顺序排列的学生信息表和分别按姓名、专业、年级顺序排列的索引表,如图1.1所示。由这4张表构成的文件便是学生信息检索的数学模型。 例1–1 学生信息检索自动化问题。 图1.1 数学模型- - -线性表 … … … … … … 2009级 信息安全 男 何文 09103 003 2008级 计算机软件 男 李鹏 08105 002 2008级 计算机科学与技术 女 张雨 08101 001 年级 专业 性别 姓名 学号 记录号 … … 001 张雨 002 李鹏 003 何文 记录号 姓名 … … 003 2009级 001,002 2008级 记录号 年级 … … 003 信息安全 002 计算机软件 001 计算机科学与技术

文档评论(0)

kehan123 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档