数据结构〔C语言版〕.ppt

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

数 据 结 构(C语言版) 严蔚敏 吴伟民编著 清华大学出版社 “数据结构课程”是计算机专业的专业基础课。 学习“数据结构”课程需要一些课程作为它的基础,如“C语言”与“离散数学”。若没有“C语言”或其它语言基础,学生就难以理解描述数据结构及其算法的类C或类C++,更重要的是造成学生上机环节的困难,影响该课程的学习。同样,“离散数学”课程是“数据结构”课程的理论基础,其中集合、树及图等重要理论知识为“数据结构”课程的学习提供了重要的理论基础。 “数据结构”课程为“编译原理”、“数据库系统”和“操作系统”等课程的学习奠定必要的基础。例如:“编译原理”的表达式求解用到“数据结构”的栈知识,符号表管理技术用到哈希查找技术;“数据库系统”的存储用到B+树知识;“操作系统”的设备链表管理用到线性链表知识,最短作业优先用到队列知识。 计算机解决现实问题的方法一般经历下列步骤: 建立数学模型?设计解此模型的算法?编程、调试 而数据结构几乎体现在问题求解的各个步骤,尤其是步骤2。可见学好数据结构具有十分重要的意义。 数据结构的教学目的 懂得“数据结构+算法=程序” 培养数据抽象的能力 把数据结构和算法理论与编程实践相结合,能够在实际的工程实践中灵活地予以应用。 数据结构的教学要求 掌握并灵活应用常用的基本数据结构的抽象数据类型、各种基本存储方法、主要的算法。 掌握并简单应用常用的排序、检索和索引算法和方法。 掌握基本的算法设计和分析技术,并对自己设计的数据结构和算法进行简单的分析。 在进行程序设计、调试、测试的课程项目训练(即上机实习训练)过程中,要求学生综合应用所学到的数据结构和算法知识,学会分析研究数据对象的特性,以便选择合适的数据结构和存储结构以及相应的算法,合理地组织数据、有效地表示数据、有效地处理数据,书写的程序结构清楚、正确易读,提高程序设计的质量。 第1章 绪论 什么是数据结构 基本概念和术语 抽象数据类型的表示与实现 算法和算法分析 1.1什么是数据结构 一般来说,用计算机解决一个具体问题时,需经历下列步骤: 建立数学模型?设计解此模型的算法?编程、调试 寻求数学模型的实质:分析问题,从中提取操作的对象,并找出对象之间的关系,然后用数学的语言加以描述。 1.1 什么是数据结构 程序=数据结构+算法 例1 书目自动检索系统 例2 人机对奕问题 多叉路口交通灯管理问题 数据结构定义: 数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等的学科。 1.2 基本概念和术语 1. 数据(data) 数据是指能够输入到计算机中,并被计算机识别和处理的符号的集合。是计算机操作的对象的总称。 例如:数字、字母、汉字、图形、图像、声音都称为数据。 3. 数据对象(data object) 是性质相同的数据元素组成的集合,是数据的一个子集。 例如,整数数据对象的集合可表示为N={0,±1,±2…….},字母字符数据对象的集合可表示为C={‘A’,’B’,…’Z’}。 从逻辑结构划分数据结构 数据结构从逻辑结构划分为: (1)线性结构 元素之间为一对一的线性关系,第一个元素无直接前驱,最后一个元素无直接后继,其余元素都有一个直接前驱和直接后继。 (2)非线性结构 元素之间为一对多或多对多的非线性关系,每个元素有多个直接前驱或多个直接后继。 从存贮结构划分数据结构 数据结构从存贮结构划分为: (1)顺序存贮(向量存贮) 所有元素存放在一片连续的存贮单元中,逻辑上相邻的元素存放到计算机内存仍然相邻。 (2) 链式存贮 所有元素存放在可以不连续的存贮单元中,但元素之间的关系可以通过地址确定,逻辑 上相邻的元素存放到计算机内存后不一定是相邻的。 数据的逻辑结构—只抽象反映数据元素的逻辑关系 数据的存储(物理)结构—数据的逻辑结构在计算机存储器中的实现 数据结构的抽象描述 数据结构可用二元组D=(K,R)的形式来描述。其中,K={a1,a2,…,an}为元素集合,R={r1,r2,…,rm}为关系的集合。 例1 设有一个线性表(a1,a2,a3,a4,a5),它的抽象描述可表示为D=(K,R),其中K={a1,a2,a3,a4,a5},R={a1,a2,a2,a3,a3,a4,a4,a5},则它的逻辑结构用图描述见图: 例2 设一个数据结构的抽象描述为D=(K,R),其中K={a,b,c,d,e,f,g,h},r={a,b,a,c,a,d,b,e,c,f,c,g,d,h},则它的逻辑结构用图描述见图1-5。 例3 设一个数据结构的抽象描述为D=(K,R),其中K={1,2,3,4},而R={(1,2),(1,3),(1,4),(2,3),(2,4),(3,4)}, 则

文档评论(0)

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

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

1亿VIP精品文档

相关文档