【考研|数据结构】严蔚敏清华大学第2版笔记 第一章

数据结构严蔚敏版 第一章笔记

数据结构是什么

数据结构是一门研究非数值计算的程序设 计问题中计算机的操作对象以及它们之间的关系和操作等的学科。
数据结构 (data structure) 是相互之间存在 一 种或多种特定关 系的数据元素的集合。

基本概念和术语

数据

数据 (data) 是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中 并被计算机程序处理的符号的总称。

数据元素

数据元素 (data element) 是数据的基本单位,在计算机程序中通常作为一个整体进行 考虑和处理。

数据对象

数据对象 (data object) 是性质相同的数据元素的集合,是数据的一个子集。

在计算机中表示信息的最小单位是二进制数的一位, 叫做位 bit

结点 元素

以用一个由若干位组合起来形成的一个位串表示一个 数据元素(如用一个字长的位串表示一个整数,用 8 位二进制数表示一个字符等),通常称 这个位串为元素 (j)(element) 或结点 (node) 。

数据域

当数据元素由若干数据项组成时,位串中对应于各个数据项的子位串称为数据域

逻辑结构

结构定义中的“关系”描述的是数据元素之间的逻辑关系

物理结构,存储结构

数据结构在计算机中的表示(又称映像)称为数据的物理结构,又称存储结构

顺序映像 顺序存储

顺序映像的特点是借助 元素在存储器中的相对位置来表示数据元素之间的逻辑关系。

虚拟存储结构

假如我们把 C 语言看成是一个执行 C 指令和 C 数据类型的虚拟处理器,那么本书中讨论的存储结构是数据结构在 C 虚拟处理器中的 表示,不妨称它为 虚拟存储结构 。

数据类型

数据类型 是一个值的集合和定义在这个值集上的一组操作的总称。

数据类型的分类
非结构的原子类型

原子类型的值是不 可分解的 , 例如 C 语言中的基本类型(整型、实型、字符型和枚举 类型)指针类型和空类型 。

结构类型

构类型的值是由若干成分按某种结构 组成的 , 因此是可以分解的 , 并且它的成分可以是非结构的 , 也可以是结构的 。

抽象数据类型(ADT)

是指一个数学模型以及定义在该模型上的一组操作

  • 一个含抽象数据类型的软件模块通常应包含定义、表示和实现 3 个部分。
  • 原子类型
  • 固定聚合类型
  • 可变聚合类型

抽想数据类型可用以下三元组表示

	(D,S,P)
	D是数据对象, S 是 D 上的关系集, P 是对 D 的基本操作集。
//抽象数据类型定义
ADT 抽象数据类型名 {
	数据对象; (数据对象的定义)
	数据关系; (数据关系的定义)
	基本操作; (基本操作的定义)
}ADT 抽象数据类项名
//基本操作的定义
基本操作名 (参数表)
	初始条件; (初始条件描述)
	操作结果; (操作结果描述)
  • 基本操作的两种参数
    • 赋值参数
      • 提供输入值
    • 引用参数
      • 提供输入值
      • 返回操作结果

  • 多形数据类型 (polymorphic data type) 是指其值的成分不确定的数据类型。

抽象数据类型的表示与实现

抽象数据类型可通过固有数据类 型来 表示和实现,即利用处理器中已存在的数据类 型来说 明新的结构,用已经实现的操作来组合新的操作

算法与算法分析

算法的五个重要特性

  1. 有穷性
  2. 确定性
  3. 可行性
  4. 输入
  5. 输出

算法设计的要求

  1. 正确性
  2. 可读性
  3. 健壮性
  4. 效率与低存储量需求

算法效率的度量

事后统计法
事前分析法
  1. 依据的算法选用何种策略
  2. 问题的规模,例如求 100 以内还是 1000 以内的素数;
  3. 书写程序的语言,对于同一个算法,实现语言的级别越高,执行效率就越低;
  4. 编译程序所产生的机器代码的质量;
  5. 机器执行指令的速度。

时间复杂度

一般情况下,算法中基本操作重复执行的次数是问题规模 n 的某个函数 f(n) ,算法的时间度量记作

T(n)=O(f(n))


在这里插入图片描述

  • 语句的频度 (frequency count) 指的是该语句重复执行的次数

空间复杂度

S(n)=O(f(n))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值