- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第1章 概 述
本章学习要点
◆了解数据结构的相关概念。
◆了解并掌握数据的4种基本逻辑结构的特点。
◆了解数据的各种基本存储结构。
◆了解算法的相关概念,并能分析各种算法的时间复杂度和空间负责度。
数据结构(Data Structures)是随着计算机科学的发展而逐步形成的一门学科,目前已成为高等院校中计算机类各专业的核心课之一,同时也是统计类、经济类和工程软件设计类各专业的必修课程。本章的主要内容是对数据结构的基本概念和基本内容作一概要介绍,为此,简单回顾一下数据结构的发展与形成过程对于理解数据结构的内容和重要性是很有必要的。
1.1 数据结构的发展概况
众所周知,在40年代计算机刚诞生时,计算机所能处理的数据只能是由0或1组成的二进制数,此时还谈不上什么结构。后来虽然计算机可以处理十进制整数和十进制实数,也不过是由0到9这十个数字组成的序列,或再加上小数点,其数据的结构非常简单没有研究它的必要。
由于计算机技术的飞速发展和数据处理能力的不断提高,到60年代中期,各种高级程序设计语言相继出现,所能描述的数据类型逐渐丰富。例如,在FORTRAN语言中允许使用复数类型和数组类型数据。其中,复数是两个实数的有序对,而数组是同类型数据的一个有限序列,这自然是一种“结构”。在COBOL语言和PL/1语言中允许使用字符类型和记录类型数据,将计算机的应用领域由数值计算进一步扩充到非数值计算。其中,记录就是一种“结构”类型的数据,它把一组相互关联的不同类型的数据看作一个整体构成一种新的“结构类型”数据。有了“结构类型”的概念之后,各个数据之间不再孤立,这样便于表示和储存,也便于处理。后来,在LISP语言中又定义了一种带有层次性的表结构,并定义了许多相应的运算。这种层次结构是一种非线性的树型结构,也是本书中将要着重讨论的内容之一。
数据结构作为一门课程的形成和发展主要是在60年代后期。首先,在1968年由美国计算机协会(ACM)颁发了建议性的计算机教学计划,其中规定数据结构作为一门独立的课程,这在世界上是第一次。同一年,美国的计算机科学家D.E.Knuth教授在他的巨著《计算机程序设计的技巧》详细论述了数据的逻辑结构和数据的存储结构,并对各种结构给出了典型算法,为数据结构作为一门课程奠定了理论基础。
70年代初,随着大型程序以及大规模文件系统的出现,结构程序设计成为程序设计方法学的主要内容。在程序设计中,数据结构受到了极大的重视。认为程序设计的实质就是对要处理的问题选择一种最为适合的数据结构,同时在此结构上施加一种好的算法。1976年瑞士著名计算机科学家N.Wirth编著的《算法+数据结构=程序》一书正是这种程序设计思想的具体体现。
70年代中后期,由于数据库系统和数据检索系统的不断发展,在数据结构中进一步增加了文件管理的内容以及B-树和B+树的知识,使数据结构的内容得以丰富和进一步完善。从80年代开始,在我国高等院校的教学计划中已经将数据结构课程列为计算机类各专业的核心课程之一,在许多非计算机专业也把数据结构作为必修课或选修课程。数据结构是一门介于数学、计算机硬件和计算机软件三者之间的计算机专业基础课,是程序设计方法学、数据库系统、操作系统、编译原理、软件工程学等课程的先修课程,是设计和实现大型应用软件的基础。
1.2 数据结构的基本术语和相关概念
数据(data)是能输入到计算机中并能被计算机处理的符号的总称,是计算机程序的加工“原料”。需要说明的是,这里的“数据”绝对不能狭义地理解为仅仅是数学中的整数或实数而已,必须作广义的理解。例如,一个有某种功能源程序,一个文件,一张图画,一段声音等等都可以通过编码而归纳为数据的范畴。
数据元素(data element)是数据的基本单位,在计算机程序中通常作为一个整体进行处理。由于数据的范围非常广泛,因此数据元素可大可小,小到一个字符;大到一本书或一张地图等等。对于较大的数据元素还能进一步分成若干个“数据项(data item)”,每个数据项也可以是由几个更小的数据项组成,这样的数据项称为“组合项”,不能再分的数据项称为“原子项”。例如,一本书的目录信息作为一个数据元素,是由各章的目录组成的,而每章的目录又是由该章中各小节的目录组成。各章的目录信息就是组合项,如果每一小节的目录不能再分成更小的单位,则称其为原子项,否则称为组合项。
关键字(key)是指数据元素中能够起标识作用的数据项。其中能够起唯一标识作用的数据项称为“主关键字”,反之称为“次关键字”。例如,每个学生的信息可以看成是一个数据元素,其中的数据项有:学号、姓名、性别、年龄和班级等等,由于每个学生都有一个唯一的学号,所以数据项“学号”是主关键字,而姓名可能存在重复所以数据项“姓名”是次关键字。
数据对象(data object)是
您可能关注的文档
- !pwm电机调速系统(基于proteus)创新.doc
- ( 修)沥青摊铺施工方案创新.doc
- ([广东]危险)边坡治理工程施工组织设计资料.doc
- (3.19曹定时间)重庆水轮机厂有限责任公司整体环保搬迁暨水力电力成套设备产业化技术改造项目创新.doc
- (16-3)0.4kV户内交流固定分隔式开关柜技术规范专用部分创新.doc
- (310需改)2赵竹青《小学语文低年级童话、寓言故事阅读教学对策研究》创新.doc
- (2015年考试)公共基础资料创新.doc
- (北)锦绣华庭防水资料.doc
- (备战2012)2011中考化学试题分类解析_空气创新.doc
- (冲刺2015必胜)2014中考生物试题分类汇编十三_生物的多样性与分类(含解析)创新.doc
- 中国国家标准 GB/T 4797.3-2024环境条件分类 自然环境条件 第3部分:生物.pdf
- GB/T 4797.3-2024环境条件分类 自然环境条件 第3部分:生物.pdf
- 《GB/T 10395.28-2024农业机械 安全 第28部分:移动式谷物螺旋输送机》.pdf
- 中国国家标准 GB/T 10395.28-2024农业机械 安全 第28部分:移动式谷物螺旋输送机.pdf
- GB/T 10395.28-2024农业机械 安全 第28部分:移动式谷物螺旋输送机.pdf
- 高中数学学考复习优化练习20空间点、直线、平面之间的位置关系含答案.docx
- 刘静心 82003005 材加概论结课论文(2).pdf
- 社会实践登记表1.doc
- 刘静心 82003005 材加概论结课论文.docx
- 十三五全面二孩政策解读.ppt
文档评论(0)