欢迎来到天天文库
浏览记录
ID:18531547
大小:209.50 KB
页数:17页
时间:2018-09-18
《《第1章 概述》习题解答new》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第1章概述第1章概述本章学习要点◆了解数据结构的相关概念。◆了解并掌握数据的4种基本逻辑结构的特点。◆了解数据的各种基本存储结构。◆了解算法的相关概念,并能分析各种算法的时间复杂度和空间负责度。数据结构(DataStructures)是随着计算机科学的发展而逐步形成的一门学科,目前已成为高等院校中计算机类各专业的核心课之一,同时也是统计类、经济类和工程软件设计类各专业的必修课程。本章的主要内容是对数据结构的基本概念和基本内容作一概要介绍,为此,简单回顾一下数据结构的发展与形成过程对于理解数据结构的内容和重要性是很有必要的。1.1数
2、据结构的发展概况众所周知,在40年代计算机刚诞生时,计算机所能处理的数据只能是由0或1组成的二进制数,此时还谈不上什么结构。后来虽然计算机可以处理十进制整数和十进制实数,也不过是由0到9这十个数字组成的序列,或再加上小数点,其数据的结构非常简单没有研究它的必要。由于计算机技术的飞速发展和数据处理能力的不断提高,到60年代中期,各种高级程序设计语言相继出现,所能描述的数据类型逐渐丰富。例如,在FORTRAN语言中允许使用复数类型和数组类型数据。其中,复数是两个实数的有序对,而数组是同类型数据的一个有限序列,这自然是一种“结构”。在C
3、OBOL语言和PL/1语言中允许使用字符类型和记录类型数据,将计算机的应用领域由数值计算进一步扩充到非数值计算。其中,记录就是一种“结构”类型的数据,它把一组相互关联的不同类型的数据看作一个整体构成一种新的“结构类型”数据。有了“结构类型”的概念之后,各个数据之间不再孤立,这样便于表示和储存,也便于处理。后来,在LISP语言中又定义了一种带有层次性的表结构,并定义了许多相应的运算。这种层次结构是一种非线性的树型结构,也是本书中将要着重讨论的内容之一。数据结构作为一门课程的形成和发展主要是在60年代后期。首先,在1968年由美国计算
4、机协会(ACM)颁发了建议性的计算机教学计划,其中规定数据结构作为一门独立的课程,这在世界上是第一次。同一年,美国的计算机科学家D.E.Knuth教授在他的巨著《计算机程序设计的技巧》详细论述了数据的逻辑结构和数据的存储结构,并对各种结构给出了典型算法,为数据结构作为一门课程奠定了理论基础。70年代初,随着大型程序以及大规模文件系统的出现,结构程序设计成为程序设计方法学的主要内容。在程序设计中,数据结构受到了极大的重视。认为程序设计的实质就是对要处理的问题选择一种最为适合的数据结构,同时在此结构上施加一种好的算法。1976年瑞士著
5、名计算机科学家N.Wirth编著的《算法+数据结构=程序》一书正是这种程序设计思想的具体体现。70年代中后期,由于数据库系统和数据检索系统的不断发展,在数据结构中进一步增加了文件管理的内容以及B-树和B+树的知识,使数据结构的内容得以丰富和进一步完善。从80年代开始,在我国高等院校的教学计划中已经将数据结构课程列为计算机类各专业的核心课程之一,在17第1章概述许多非计算机专业也把数据结构作为必修课或选修课程。数据结构是一门介于数学、计算机硬件和计算机软件三者之间的计算机专业基础课,是程序设计方法学、数据库系统、操作系统、编译原理、
6、软件工程学等课程的先修课程,是设计和实现大型应用软件的基础。1.2数据结构的基本术语和相关概念数据(data)是能输入到计算机中并能被计算机处理的符号的总称,是计算机程序的加工“原料”。需要说明的是,这里的“数据”绝对不能狭义地理解为仅仅是数学中的整数或实数而已,必须作广义的理解。例如,一个有某种功能源程序,一个文件,一张图画,一段声音等等都可以通过编码而归纳为数据的范畴。数据元素(dataelement)是数据的基本单位,在计算机程序中通常作为一个整体进行处理。由于数据的范围非常广泛,因此数据元素可大可小,小到一个字符;大到一本
7、书或一张地图等等。对于较大的数据元素还能进一步分成若干个“数据项(dataitem)”,每个数据项也可以是由几个更小的数据项组成,这样的数据项称为“组合项”,不能再分的数据项称为“原子项”。例如,一本书的目录信息作为一个数据元素,是由各章的目录组成的,而每章的目录又是由该章中各小节的目录组成。各章的目录信息就是组合项,如果每一小节的目录不能再分成更小的单位,则称其为原子项,否则称为组合项。关键字(key)是指数据元素中能够起标识作用的数据项。其中能够起唯一标识作用的数据项称为“主关键字”,反之称为“次关键字”。例如,每个学生的信息
8、可以看成是一个数据元素,其中的数据项有:学号、姓名、性别、年龄和班级等等,由于每个学生都有一个唯一的学号,所以数据项“学号”是主关键字,而姓名可能存在重复所以数据项“姓名”是次关键字。数据对象(dataobject)是具有相同性质的数据元素的集合,
此文档下载收益归作者所有