算法与数据结构read.ppt

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

数据结构的程序实现 数据结构是对程序中数据信息的结构组织,供给定问题求解算法的控制结构来处理。 Niklaus wirth曾经给出“算法+数据结构=程序”的公式,得到了计算机科学界的普遍认可。 在程序设计语言中如何表示数据和控制,很大程度上决定了如何使用这个语言来编写程序;所以在程序设计语言中不仅提供了与程序控制流程有关的控制结构,同时也提供了与程序中数据信息组织有关的数据结构。 程序设计的主要任务就是在选取或组织适当的数据结构的基础上,利用三种基本结构(顺序、选择、重复)把逐级分解得到的一系列基本操作组织起来,形成用某种特定语言书写的源程序。 数据结构的程序实现(续) 《算法与数据结构》课程讨论数据结构的目的,就是为了在设计给定问题的求解算法时,应用这些数据结构来组织程序中的数据;从而降低问题的分析与设计难度,提高程序(或算法)的设计质量,缩短设计周期。 这里就有一个在程序中如何实现各种数据结构的问题。实现是使用的前提,只有在程序中实现了数据结构,才能在程序中利用数据结构对给定问题进行有效地求解。 本章将从几个不同的角度讨论如何在程序中实现各种数据结构的问题。 第9章 数据结构的程序实现 基本的实现策略 程序设计语言中提供了与程序中数据信息组织有关的数据结构,但没有也不可能提供所有的数据结构。 一方面,受科学技术和生产力发展水平的限制,人类认知世界具有历史局限性;人们不可能在某一天完成对现实世界的认知过程,同样也不可能在某一天说对数据结构的认知过程已经完结,这种认知过程是一个渐进式不断深化和逐步完善的过程。 另一方面,受计算机科学发展和计算机系统本身的限制,人们不可能研制出一种设施包罗万象、功能应有尽有的计算机语言和语言翻译系统。 因此,程序设计语言中只可能提供一些基本的和常用的数据结构设施,并提供一些构造求解现实世界中问题所需数据结构的基本设施和方法手段。 9.1 基本的实现策略 9.1.1 简单数据结构的程序实现 9.1.2 构造型数据结构的程序实现 9.1.3 数据结构的链式实现 9.1.4 数据结构的数组实现 简单数据结构的程序实现 简单的数据结构,在程序设计语言中已经实现了,并作为数据类型提供给程序设计人员。 诸如整型数据、实型数据、布尔型数据和字符型数据等等。 程序设计人员只要在程序中用相应的类型标识符直接说明程序中数据变量的类型就可以直接使用了,如C语言中的int,unsigned int,long int,short int,unsigned short int,char,float和double等。 9.1 基本的实现策略 9.1.1 简单数据结构的程序实现 9.1.2 构造型数据结构的程序实现 9.1.3 数据结构的链式实现 9.1.4 数据结构的数组实现 构造型数据结构的程序实现 还有一些简单类型和构造类型,也是在程序设计语言中已经实现了的数据结构。如枚举型、子界型、日期型、集合、数组、字符串、记录、文件等。 程序设计语言中提供了程序设计人员在程序中说明这些数据类型的方法,程序设计人员只要在程序中的适当位置按照相应的格式和要求对程序中的数据进行说明就可以使用了。如C语言中的枚举、数组、字符串、结构体、共同体、文件等。 9.1 基本的实现策略 9.1.1 简单数据结构的程序实现 9.1.2 构造型数据结构的程序实现 9.1.3 数据结构的链式实现 9.1.4 数据结构的数组实现 数据结构的链式实现 其它的数据结构,如链表、循环链表、栈、队列、广义表、树、二叉树、图、网和堆等,在程序设计语言中一般都没有提供其相应的数据类型,程序设计人员不能够在程序中用类型说明的办法直接引入。 然而,许多程序设计语言都提供有指针类型,程序设计人员可以利用指针类型在程序中动态建立所需要的某种数据结构。 一般地,在建立某种数据结构之前,先需要说明其数据元素的结点类型,如说明成记录、结构体等,再用指针变量动态建立起相应的数据结构,以供求解问题的程序使用或处理。 9.1 基本的实现策略 9.1.1 简单数据结构的程序实现 9.1.2 构造型数据结构的程序实现 9.1.3 数据结构的链式实现 9.1.4 数据结构的数组实现 数据结构的数组实现 如果在程序设计语言中没有提供指针变量,就不能动态实现程序中需要的数据结构;还有一些数据结构,不宜借助指针来实现,如顺序表、顺序栈、顺序队列等。对于这两种情况,程序设计人员都可以在程序中利用数组模拟实现程序中需要的一些数据结构。 数组是每一种高级程序设计语言都提供了的数据结构。可以利用一维数组模拟实现顺序表、顺序栈、顺序队列。可以利用二维数组模拟实现链表或循环链表,其中一列描写一个数据元素(或结点);若构成数据元素各字段

文档评论(0)

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

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

1亿VIP精品文档

相关文档