- 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.给出数据结构的概念
2.介绍数据抽象和抽象数据类型
3.说明数据结构和算法描述的方法
4.介绍算法和算法分析的基本方法;1.1 算法和数据结构;1.1 算法和数据结构;;;,;;1. 数据:计算机加工处理的对象
2.数据元素:是组成数据的基本单位,在计算机程序中通常作为一个整体来处理。
数据元素由若干数据项组成。
3.数据项是不可再分割的。;表1.1 学生情况表;数据结构的由来
数据结构主要是为研究和解决如何使用计算机组织和处理这些非数值问题而产生的理论、技术和方法。它已成为计算机学科研究的基本课题之一。
;什么是数据结构
定义1----
数据元素之间的相互关系称为结构,带有结构的数据元素的集合称为数据结构。
定义2----
按某种逻辑关系组织起来的一批数据(或称带结构的数据元素的集合)应用计算机语言并按一定的存储表示 方式把它们存储在计算机的存储器中,并在其上定义了一个运算的集合。
; 数据结构包括三个方面
逻辑结构:数据元素间的逻辑关系;
存储结构:数据在计算机内的表示形式;
运算:在数据上执行的操作。;数据结构举例 ;1.2.2 数据的逻辑结构;4种基本的逻辑结构;
;; 顺序存储
顺序(或称连续)表示方法需要一块连续的存储空间,并把逻辑上相关的数据元素一次存储在该连续的存储区中。; 链式存储
;;1.2.4 数据结构的运算; 静态数据结构和动态数据结构
如果一个数据结构一旦创建,其结构不发生改变,则称为静态数据结构,否则成为动态数据结构。; 小结
数据结构是一门研究程序设计问题中计算机的操作对象(数据)以及它们之间的关系和运算的学科。;1.3 数据抽象和抽象数据类型 ; 1. C 语言的数据类型
(1)基本类型:字符、整型 ……
(2)构造类型:数组、结构和联合
(3)指针类型:指针;抽象数据类型(Abstract Data Type, ADT)是一个数据类型,其主要特征是该类型的对象及其操作的规范,与该类型对象的表示和操作的实现分离,实行封装和信息隐蔽,即使用和实现分离。;
规范指明“做什么”,
实现解决“怎样做”。
规范是实现的准则和依据
;一个数据结构包含两个层次:
(1)数据结构的规范(抽象层):
逻辑结构和运算的定义组成了数据结构的规范
(2)数据结构的实现(实现层):
存储结构和运算算法实现构成了数据结构的实现;1.4 描述数据结构和算法;本书是怎样描述每种数据结构?
;
(1)用格式化的自然语言来描述数据结构的规范。
(2)用一个C++的抽象模板类描述数据结构的规范。;数据结构描述举例---堆栈;ADT 1.1 栈抽象数据类型
ADT Stack
{ Data: (描述逻辑结构)
0个或多个元素的线性序列(a0,a1,? ,an-1),
遵循LIFO原则。
Operations: (描述运算的定义)
Create():创建一个空栈。
Destroy():撤消一个栈。
Push(x):元素x插入栈顶。
Pop():删除栈顶元素。
Top(x):在x中返回栈顶元素。
} ;程序 1.1 栈的C++模板抽象类
templateclass T
class Stack
{ public:
virtual void Push(T x)=0;
virtual void Pop()=0;
virtual T Top(T x)const=0;
…
};
除了构造函数,其余成员函数都是纯虚函数。顺序栈类SeqStack是类Stack在顺序存储表示下的一种实现,它是从抽象类Stack派生出来的,它可以实例化。;templateclass T
bool SeqStackT::Push(T x)
{
if(IsFull())
{ coutOverflowendl;
return false;
}
s[++top]=x;
return true;
};1.5 算法分析的基本方法;1.什么是算法
一个算法(algorithm)是对特定问题的求解步骤的一种描述,它是指令的有限序列;此外,算法具有下列五个特征:
(1)输入 算法有零个或多个输入。
(2)输出
您可能关注的文档
- 建设工程施工总包与技术要求说明(类似于技术性补充协议).doc
- 工程材料试题和答案合集.doc
- 当代英国高等院校学前教育专业实习特点与其启示.pdf
- 工程硕士专业文献翻译和综述.doc
- 开关电源变压器磁心气隙量公式辨析计算.pdf
- 工程硕士英语格式和标点.ppt
- 当前美国教师资格评价标准研究现状与意义.pdf
- 工程硕士神经网络理论和应用课程5.ppt
- 序言与第1,2节.ppt
- 工程竣工备案有关规定和目录.doc
- 新一代MSTP技术与其应用.doc
- 文献检索与利用期末复习资料-完整.ppt
- 新型分子标记――SRAP与TRAP与其应用 Novel Molecular Marker Systems-----SRAP and TRAP and The.pdf
- 常用中药方剂药物组成和功用主治.doc
- 常州市专业技术人员继续教育《沟通和协调能力》单选试题和答案.doc
- 新世界观第一次公开问世_对_哲学贫困_解读_余源培.pdf
- 方正软件常见问题与其解决办法.doc
- 新概念第一册lesson9-10.ppt
- 文本类型理论与其对翻译研究启示.pdf
- 希望杯第1-13届五年级数学1试和2试试题和答案(WORD版).doc
文档评论(0)