数据机构基于C语言.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据机构基于C语言

数据结构(C语言版) Data Structure;第一章 绪言;1.1 什么是数据结构 ;例1 书目自动检索系统;例2 人机对奕问题;例3 多叉路口交通灯管理问题;数据结构定义: 是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等等的学科。;1.2 基本概念和术语 数据(data):所有能输入到计算机中去的描述客观事物的符号 数据元素(data element):数据的基本单位,也称节点( node)或记录(record) 数据项(data item):有独立含义的数据最小单位,也称域(field) 数据对象(data object):性质相同的数据元素的集合,是数据的一个子集 数据结构(data structure):数据元素和数据元素关系的集合;数据的逻辑结构:只抽象反映数据元素的逻辑关系 数据的存储(物理)结构:数据的逻辑结构在计算机存储器中的实现;元素n;1536;;数据类型(data type):高级语言中指数据的取值范围及其上可进行的操作的总称。;抽象数据类型(Abstract Data Type, 简称ADT):是指一个数学模型以及定义在此数学模型上的一组操作。;基本操作的定义形式如下:   基本操作名(参数名) 初始条件:初始条件描述 操作结果:操作结果描述;多形数据类型(polymorphic data type):是指其值成分不确定的数据类型。;1.3 抽象数据类型的表示与实现 ;类C语言描述中的语句及约定: (1)预定义常量和类型 (2)数据结构的表示(存储结构)用类型定义(typedef)描述 (3)基本操作的算法用函数描述 (4)赋值语句 (5)选择语句 (6)循环语句 (7)结束语句 (8)输入语句 (9)注释 (10)基本函数 (11)逻辑运算约定;1.4 算法和算法分析 算法(algorithm):解决某一特定问题的具体步骤的描述,是指令的有限序列 算法特性:; 度量程序执行时间的两种方法: 事后统计:利用计算机内部的记时功能,不同算法的程序可以用一组或多组相同的统计数据区分优劣 缺点:?必须先运行依据算法编制的程序 ?所得时间统计量依赖于硬件、软件等环境因素,掩盖算法本身的优劣 事前分析估计:一个高级语言程序在计算机上运行所消耗的时间取决于: ?依据的算法选用何种策略 ?问题的规模 ?程序语言 ?编译程序产生机器代码质量 ?机器执行指令速度 同一个算法用不同的语言、不同的编译程序、在不同的计算机上运行,效率均不同,———所以使用绝对时间单位衡量算法效率不合适;问:如何解决算法的时间度量问题?;例1:N×N矩阵相乘 for(i=1;i=n;i++) for(j=1;j=n;j++) {c[i][j]=0; for(k=1;k=n;k++) c[i][j]=c[i][j]+a[i][k]*b[k][j]; } ;;;;;;;;;;;;第三章 栈和队列;一、栈;根据栈的定义可知,最先放入栈中元素在栈底,最后放入的元素在栈顶,而删除元素刚好相反,最后放入的元素最先删除,最先放入的元素最后删除。;例1:有一个栈,进栈序列为A、B、C,进栈的同时允许出栈试给出所有可能的出栈序列。;例2:一个栈的输入序列是12345,若在入栈的过程中允许出栈,则栈的输出序列43512可能实现吗?12345的输出呢?;ADT Stack { 数据对象:D={ ai | ai ∈ElemSet, i=1,2,...,n, n≥0 } 数据关系:R={ ai-1, ai | ai-1, ai∈D, i=2,...,n } 约定an 端为栈顶,a1 端为栈底。 基本操作: InitStack (S) //操作结果:构造一个空栈S。 DestroyStack (S) //操作结果:栈S被销毁。 ClearStack (S) //操作结果:将S清为空栈 ; StackEmpty (S) //操作结果:若栈S为空栈,则返回TRUE,否则FALSE。 StackLength (S) //操作结果:返回S的元素个数,即栈的长度。 GetTop (S, e) //操作结果:用e返回S的栈顶元素。 Push (S, e) //操作结果:插入元素e为新的栈顶元素。 Pop (

文档评论(0)

ipad0d + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档