欢迎来到天天文库
浏览记录
ID:21270105
大小:440.50 KB
页数:11页
时间:2018-10-20
《《数据结构教程》第一章 绪论》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、11第1章绪论绪论“数据结构”是计算机及相关专业的专业基础课之一,是一门十分重要的核心课程,主要学习用计算机实现数据组织和数据处理的方法。通过学习它,也将为计算机专业后续课程(如操作系统、编译原理、数据库原理和软件工程等)的学习打下坚实的基础。另外,随着计算机应用领域的不断扩大,非数值计算问题占据了当今计算机应用的绝大部分,简单的数据类型已经远远不能满足需要,各数据元素之间的复杂联系已经不是普通数学方程式所能表达的了,无论设计系统软件还是应用软件都会用到各种复杂的数据结构。因此,掌握好数据结构课程的知识,对于提高解决实际问题的能力将
2、会有很大的帮助。实际上,一个“好”的程序无非是选择一个合理的数据结构和好的算法,而好的算法的选择很大程度上取决于描述实际问题所采用的数据结构,所以,要想编写出“好”的程序,仅仅学习计算机语言是不够的,必须扎实地掌握数据结构的基本知识和基本技能。1.1什么是数据结构在了解数据结构的重要性之后,开始讨论数据结构的定义,本节先从一个简单的学生表例子入手,继而给出数据结构的严格定义,接着分析数据结构的几种类型,最后给出数据结构和数据类型之间的区别与联系。1.1.1数据结构的定义数据是人们利用文字符号、数字符号以及其他规定的符号对现实世界的事
3、物及其活动所做的抽象描述。例如,日常生活中使用的各种文字、数字和特定符号都是数据。从计算机的角度看,数据是所有能被输入到计算机中,且能被计算机处理的符号的集合。它是计算机操作的对象的总称,也是计算11第1章绪论机处理信息的某种特定的符号表示形式(例如,200402班学生数据就是该班全体学生记录的集合)。数据元素是数据(集合)中的一个“个体”,是数据的基本单位(例如,200402班中的每个学生记录都是一个数据元素),在计算机中通常被作为一个整体来进行考虑和处理。在有些情况下,数据元素也称为元素、结点、顶点、记录等。有时候,一个数据元素
4、可以由若干个数据项组成。数据项是具有独立含义的数据最小单位,也称为字段或域(例如,200402班中每个数据元素即学生记录是由学号、姓名、性别和班号等数据项组成)。数据对象是性质相同的数据元素的集合,它是数据的一个子集。数据结构是指数据以及相互之间的联系,可以看作是相互之间存在着某种特定关系的数据元素的集合,因此,可以把数据结构看成是带结构的数据元素的集合。数据结构包括如下几个方面:·数据元素之间的逻辑关系,即数据的逻辑结构。·数据元素及其关系在计算机存储器中的存储方式,即数据的存储结构,也称为数据的物理结构。·施加在该数据上的操作,
5、即数据的运算。数据的逻辑结构是从逻辑关系上(主要是指相邻关系)描述数据的,它与数据的存储无关,是独立于计算机的。因此,数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。数据的存储结构是逻辑结构用计算机语言的实现(亦称为映像),也就是逻辑结构在计算机中的存储方式,它是依赖于计算机语言的。一般只在高级语言(例如,C/C++语言)的层次上来讨论存储结构。数据的运算是定义在数据的逻辑结构之上的,每种逻辑结构都有一组相应的运算。例如,最常用的运算有:检索、插入、删除、更新、排序等。数据的运算最终需在对应的存储结构上用算法实现。因此,数据结
6、构是一门讨论“描述现实世界实体的数学模型(非数值计算)及其之上的运算在计算机中如何表示和实现”的学科。【例1.1】有一个学生表(数据)如表1.1所示。这个表中的数据元素是学生记录,每个数据元素由4个数据项(即学号、姓名、性别和班号)组成。讨论其存储结构。表1.1学生表学号姓名性别班号学号姓名性别班号1张斌男990112王奇男99018刘丽女990226董强男990234李英女99015王萍女990120陈华男9902解:该表中的记录顺序反映了数据元素之间的逻辑关系,可以用学号标识每个学生记录,这种逻辑关系可以表示为:<1,8>,<8
7、,34>,<34,20>,<20,12>,<12,26>,<26,5>11第1章绪论。其中尖括号“”表示元素ai和ai+1之间是相邻的,即ai在ai+1之前,ai+1在ai之后。这些数据在计算机存储器中的存储方式就构成了存储结构。通常可以采用C/C++语言中的结构体数组和链表两种方式实现其存储结构。存放上述学生表的结构体数组Stud定义如下:struct{intno;/*存储学号*/charname[8];/*存储姓名*/charsex[2];/*存储性别*/charclass[4];/*存储班号*/}Stud[7
8、]={{1,"张斌","男","9901"},…,{5,"王萍","女","9901"}};数组Stud[]中各元素在内存中顺序存放,即Stud[i]存放在Stud[i+1]之前,而Stud[i+1]存放在Stud[i]之后。存放学生
此文档下载收益归作者所有