- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《数据结构教程》一绪论
绪 论
“数据结构”是计算机及相关专业的专业基础课之一,是一门十分重要的核心课程,主要学习用计算机实现数据组织和数据处理的方法。通过学习它,也将为计算机专业后续课程(如操作系统、编译原理、数据库原理和软件工程等)的学习打下坚实的基础。
另外,随着计算机应用领域的不断扩大,非数值计算问题占据了当今计算机应用的绝大部分,简单的数据类型已经远远不能满足需要,各数据元素之间的复杂联系已经不是普通数学方程式所能表达的了,无论设计系统软件还是应用软件都会用到各种复杂的数据结构。因此,掌握好数据结构课程的知识,对于提高解决实际问题的能力将会有很大的帮助。实际上,一个“好”的程序无非是选择一个合理的数据结构和好的算法,而好的算法的选择很大程度上取决于描述实际问题所采用的数据结构,所以,要想编写出“好”的程序,仅仅学习计算机语言是不够的,必须扎实地掌握数据结构的基本知识和基本技能。
1.1 什么是数据结构
在了解数据结构的重要性之后,开始讨论数据结构的定义,本节先从一个简单的学生表例子入手,继而给出数据结构的严格定义,接着分析数据结构的几种类型,最后给出数据结构和数据类型之间的区别与联系。
1.1.1 数据结构的定义
数据是人们利用文字符号、数字符号以及其他规定的符号对现实世界的事物及其活动所做的抽象描述。例如,日常生活中使用的各种文字、数字和特定符号都是数据。从计算机的角度看,数据是所有能被输入到计算机中,且能被计算机处理的符号的集合。它是计算机操作的对象的总称,也是计算
机处理信息的某种特定的符号表示形式(例如,200402班学生数据就是该班全体学生记录的集合)。
数据元素是数据(集合)中的一个“个体”,是数据的基本单位(例如,200402班中的每个学生记录都是一个数据元素),在计算机中通常被作为一个整体来进行考虑和处理。在有些情况下,数据元素也称为元素、结点、顶点、记录等。有时候,一个数据元素可以由若干个数据项组成。数据项是具有独立含义的数据最小单位,也称为字段或域(例如,200402班中每个数据元素即学生记录是由学号、姓名、性别和班号等数据项组成)。数据对象是性质相同的数据元素的集合,它是数据的一个子集。
数据结构是指数据以及相互之间的联系,可以看作是相互之间存在着某种特定关系的数据元素的集合,因此,可以把数据结构看成是带结构的数据元素的集合。数据结构包括如下几个方面:
数据元素之间的逻辑关系,即数据的逻辑结构。
数据元素及其关系在计算机存储器中的存储方式,即数据的存储结构,也称为数据的物理结构。
施加在该数据上的操作,即数据的运算。
数据的逻辑结构是从逻辑关系上(主要是指相邻关系)描述数据的,它与数据的存储无关,是独立于计算机的。因此,数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。
数据的存储结构是逻辑结构用计算机语言的实现(亦称为映像),也就是逻辑结构在计算机中的存储方式,它是依赖于计算机语言的。一般只在高级语言(例如,C/C++语言)的层次上来讨论存储结构。
数据的运算是定义在数据的逻辑结构之上的,每种逻辑结构都有一组相应的运算。例如,最常用的运算有:检索、插入、删除、更新、排序等。数据的运算最终需在对应的存储结构上用算法实现。
因此,数据结构是一门讨论“描述现实世界实体的数学模型(非数值计算)及其之上的运算在计算机中如何表示和实现”的学科。
【例1.1】 有一个学生表(数据)如表1.1所示。这个表中的数据元素是学生记录,每个数据元素由4个数据项(即学号、姓名、性别和班号)组成。讨论其存储结构。
表1.1 学生表
学 号 姓 名 性 别 班 号 学 号 姓 名 性 别 班 号 1 张斌 男 9901 12 王奇 男 9901 8 刘丽 女 9902 26 董强 男 9902 34 李英 女 9901 5 王萍 女 9901 20 陈华 男 9902 解:该表中的记录顺序反映了数据元素之间的逻辑关系,可以用学号标识每个学生记录,这种逻辑关系可以表示为:1,8,8,34,34,20,20,12,12,26,26,5。其中尖括号“ai,ai+1”表示元素ai和ai+1之间是相邻的,即ai在ai+1之前,ai+1在ai之后。
这些数据在计算机存储器中的存储方式就构成了存储结构。通常可以采用C/C++语言中的结构体数组和链表两种方式实现其存储结构。
存放上述学生表的结构体数组Stud定义如下:
struct
{ int no; /*存储学号*/
char name[8]; /*存储姓名*/
char sex[2]; /*存储性别*/
char class[4]; /*存储班号*/
您可能关注的文档
最近下载
- 日语n4教学课件.ppt VIP
- 阀门结构与原理2.pptx VIP
- 第2单元第2课《花鸟为伴》第二课时课件-2025-2026学年人美版(2024)美术新教材八年级上册.pptx VIP
- GB_T8979-2008《纯氮、高纯氮和超纯氮》.pdf
- 输变电工程标准工艺(变电工程电气分册)2022版.pdf VIP
- 新疆新和县2025年上半年公开招聘辅警试题含答案分析.docx VIP
- Marantz马兰士NA8005产品说明书.pdf VIP
- 《平行四边形的面积》教学课件.ppt.ppt
- 脊髓型颈椎病护理查房【26页】.pptx VIP
- 中考物理总复习《简单机械》专项练习题-附带答案.pdf VIP
原创力文档


文档评论(0)