数据结构第一章笔记

数据结构的学习

利用计算机解决问题的三个步骤
1.具体问题抽象为数学模型
2.设计算法
3.编程,调试,运行

如何具体问题抽象化
1.分析问题
2.找出操作对象按
3.抽象出操作对象的关系
4.用数学语言描述

数据结构:是一门研究非数值计算程序设计中他们之间的关系和操作的学科

定义理解
数据:是输入到计算机中并被计算机程序处理的符号的总称(这就像一个表的全部数据)
特点:
1.信息的载体
2.对客观事物符号化的表示
3.能够被计算机识别,储存和加工
包括:
1.数值型
2.非数值型:文字 图像 图形 声音

数据元素:这是数据的基本单位,但是在计算机中经常作为一个整体进行考虑。数据元素用于完整地描述一个对象(就像表中的一行记录 树中棋盘的一个格局 图中的一个顶点)
别称:元素,记录,节点,顶点

数据项:组成数据元素,有自己独立的含义,不可分割的最小单位。(表中一个学生的学号)

数据>数据元素>数据项
例:学生表>个人纪录>学号,姓名

数据对象性质相同的数据元素的集合,这是数据的一个子集。(整数集 学生基本信息表(多个数据项组成的复合数据元素))
例子:整数数据对象 字符字母数据对象 学籍表也可以看作一个数据对象

数据元素与数据对象的关系
数据元素 组成数据的基本单位
与数据的关系:是集合的个体
数据对象 性质相同的数据元素的集合
与数据的关系:集合的子集

数据结构包括逻辑结构和存储结构,定义为:相互之间存在一种或多种特定关系的数据元素的集合

数据结构的概念
1.数据元素不是孤立的存在的,他们之间存在着某种关系,数据元素相互之间的关系称为结构
2.是指相互之间存在一种或多种特定关系的数据元素的集合
3.数据结构是带结构的数据元素的集合

数据结构包括的三个方面的内容
1.数据元素之间的逻辑关系,也称逻辑结构
2.数据元素及其关系在计算机内存中的表示(有成为映像),称为数据结构的物理结构或数据的存储结构
3.数据的运算与实现,即对数据元素可以施加的操作以及这些操作在相应的存储结构上的实现。

逻辑结构与数据的存储无关,它是独立于计算机的(可以看作从具体问题抽象出来的数学模型)它有两个要素 一个是数据元素一个是关系。其中关系又包含四种基本结构,由复杂程序依此为 集合结构(属于一个集合) 线性结构(一对一的关系) 树结构(一对多的关系) 图结构(多对多的关系)

存储结构也叫物理结构 既要存储各数据元素之间的逻辑关系,又要存储数据元素之间的逻辑关系 。其中数据元素在计算机中用一个节点来表示。有两种存储结构
顺序存储结构和链式存储结构和索引存储结构和散列存储结构
第一种是利用存储器中的相对位置来表示数据元素之间的关系
第二种是给每个节点附加指针字段

**数据元素及其关系在计算机存储器中的结构

是数据结构在计算机中的表示**

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

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

=值的集合+值集合上的一组操作
在使用高级语言编写程序时,必须对程序中出现的每一个变量,常量或表达式,明确说明他们所属的数据类型。
构造数据类型 :数组,结构,共用体,枚举 还有指针和空类型
数据类型的作用
约束变量或常量的取值范围
约束变量或常量的操作

抽象数据类型是用户自己定义的表示应用问题的数学模型,以及定义在这个模型上的一组操作,包括三个部分:数据对象,数据对象上的关系的集合,数据对象的基本操作的集合
简称ADT其中(D,S,P)是三元组的表示方法
D是数据对象
S是D上的关系集
P是D上的基本操作集

数据对象、数据关系的定义用伪代码描述

赋值参数只为操作提供输入值;
引用参数以&打头,两种功能 第一种是提供输入值,第二种是返回操作的结果。

初始条件描述了操作执行前数据结构和参数应满足的条件,如果初始条件为空,则省略。
操作结果说明了错做正常完成过后,数据结构的变化和应返回的结果。

类C语言是一种介于伪码和C语言之间的
融合了C和C++

格式为
ADT 抽象数据类型名

{
数据对象 D={ | }
数据关系 S{< >| }
基本操作 :
名称:
初始条件:
操作结果:

}ADT 抽象数据类型名称

C语言实现抽象数据类型:
1.用已有数据类型定义描述他的存储结构
2.用函数定义描述他的操作
抽象数据类型如何实现
1.抽象数据类型可以通过固有的数据类型(如整数型,实型,字符型等)来表示和实现
2.即利用处理器中已经存在的数据类型来说明新的结构,用已经存在的操作来组合新的操作。
算法和算法分析
算法是为了解决某类问题而规定的一个有限长的操作序列:解决问题的方法和步骤
算法的描述
1.自然语言
2.流程图
3.伪代码:类语言,类C语言
4.程序语言

程序=数据结构+算法
1.数据结构通过算法实现操作
2.算法根据数据结构设计程序

1.有穷性:有穷步结束,每一步有穷时间
2.确定性:操作有确切的规定,不会产生二义性
3.可行性:所有操作可以通过基本操作执行有限次来实现
4.输入:有零个或多个输入
5.输出:一个算法有一个或多个输出

算法的优劣
1.正确性:合理的数据下(精心,典型,刁难),在有限的运行时间内得到正确的结果
2.可读性:便于人们的理解和相互交流
3.健壮性:当输入数据非法时可以是适当的作出正确的反应或进行相应的处理
4.高效性:时间和空间两个方面 时间用时间复杂度来衡量,空间高效时算法所占用的存储空间容量合理,利用空间复杂度来衡量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值