C++与数据结构 <一:数据结构>

数据结构的基本概念

程序设计的实质:
数据表示:将数据存储在计算机中
数据处理:处理数据,求解问题

(1)数据结构的概念和术语

数据:所有能输入到计算机并被计算机处理的符号总和,是计算机化的信息,是计算机操作的对象的总称

数值数据:整数,实数,复数……
非数值数据:字符,字符串,图像,声音

数据元素:数据的基本单位,作为一个整体进行考虑和处理,是数据结构中讨论的基本单位,可以是数据项的集合

一个数据结构由若干个数据项组成
数据项:数据处理中不可分割的最小单位

数据对象:性质相同的数据元素的集合,是数据的一个子集
数据结构(数据的逻辑结构):是相互之间存在的一种或多种特定关系的数据元素的集合

带结构的数据元素的集合
数据元素不是孤立存在的的,它们之间存在着某种关系西,这种数据元素相互之间的关系称为结构

  • 集合结构(属于同一个集合)
  • 线性结构(除第一个元素外,每一个元素有且只有一个直接前驱)
  • 树形结构(一对多)
  • 网状结构(多对多)

Data_Structure={D,R}
D是某一数据元素的集合,R是该集合中所有数据元素之间的关系的有限集合

数据结构(数据的物理结构,存储结构):数据结构在计算机中的表示,包括数据元素的表示和关系的表示

存储结构是逻辑关系的映像与元素本身的映像。逻辑结构是数据结构的抽象,存储结构是数据结构的实现,两者综合起来建立了数据元素之间的结构关系

:计算机中表示信息的最小单位是二进制的一位
数据元素:若干个组合起来形成的一个位串(元素或结点,数据元素在计算机中的映像)表示一个数据元素
数据域:当数据元素由若干数据项组成时,位串中对应于各个数据项的子位串称为数据域
顺序映射(以数据元素在存储器中的相对位置来表示数据元素之间的逻辑关系)——————>顺序存储结构(整个存储结构只含数据元素本身的信息)
非顺序映射 (以附加信息(指针)表示数据元素之间的逻辑关系)—————>链式存储结构(需要一个和x在一起的附加信息指示y的存储位置)

算法:一个有穷的指令集,这些指令为解决某一特定任务规定了一个运算序列

算法特性:有输入(0个或多个),有输出(1个或多个),确定性,有穷性,可行性

数据结构一般包括:数据的逻辑结构,数据的存储结构,数据的运算(对时局是假的操作)
按某种逻辑关系组织起来的一批数据,按一定的映像方式把它存放在计算机的存储器中,并在这些数据上定义了一个运算的集合,就叫做数据结构
在这里插入图片描述

(2)抽象数据类型

1.2.1数据类型

在这里插入图片描述
在这里插入图片描述

1.2.2数据抽象与抽象数据类型

抽象数据类型:由用户定义,用来表述应用问题的数据模型。由基本的数据类型组成,并包括一组相关的操作。
抽象数据类型的特点:使用与实现分离,实行封装和信息隐蔽

(3)算法和算法分析

1.3.1算法

算法是对特定问题求解步骤的一种描述,是指令的有限序列,其中每一条指令表示一个或多个操作

算法特性

  1. 有穷性
  2. 确定性
  3. 可行性
  4. 输入
  5. 输出
1.3.2算法设计的要求

评价算法的性能标准

  1. 正确性

程序不含语法错误
程序对于几组输入的数据能够得出满足规格说明要求的结果
程序对于精心选择,典型的,苛刻的机组输入数据能够得到满足规格说明要求的结果
程序对于一切合法的输入数据都能产生满足规格说明要求的结果

  1. 可读性
  2. 健壮性
  3. 效率
1.3.3算法效率的度量

算法的效率包括算法运行时间代价存储空间代价,分别由时间复杂度空间复杂度来度量
问题的规模n
时间复杂性T(n)
空间复杂性S(n)

1.算法的时间复杂度

度量一个程序的执行时间:事后统计的方法&事前分析估算的方法
一个算法由控制结构和原操作构成,算法的时间取决于两者的综合效果。
通常做法是:从算法中选取一种对于所研究的问题来说是基本运算的原操作,以该基本操作的重复执行的次数作为算法的时间度量
算法时间度量:T(n)=O(f(n))
算法中基本操作重复执行的次数是问题规模n的某个函数f(n)
除特别指明外,时间复杂度均指最坏情况下的时间复杂度

2.算法的空间复杂度

S(n)=O(f(n))
n为问题的规模
空间固定部分程序指令代码的空间,查那个书,简单变量,定长成分
空间可变部分
算法效率的表达
如果所占空间量依赖于特定的输入,则除特别指明外,均按最坏的情况来分析

(4)面向对象概述

1.4.1面向对象的思想
1.4.2面向对象程序设计
1.4.3面向对象的语言
1.4.4面向对象的基本概念
  1. 对象
  2. 对象的特性
  3. 消息
1.4.5面向对象的基本特性

1.封装性
2.继承性
3.多态性

(5)习题整理

研究数据结构就是研究(数据的逻辑结构、存储结构及其数据在运算上的实现 )
数据的(逻辑结构 )包括集合、栈、树和图结构4种基本类型。
与数据元素本身的形式、内容、相对位置、个数无关的是数据的( 逻辑结构)
数据的(基本运算 )包括查找、插入、删除、更新、排序等操作类型。
计算机中的算法是指解决某个问题的有限运算序列,它必须具备输入、输出、(可行性、有穷性和确定性)等5个特性。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

徐家小河沟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值