数据结构的基本概念和抽象数据类型


  • 1、基本概念和术语
数据:是对客观事物的符号表示。
数据元素:数据的基本单位,一个数据元素可由若干个数据项组成,数据项是数据的不可分割的最小单位
数据对象:性质相同的数据元素的集合是数据的一个子集
数据结构:相互之间存在一种或多种特定的关系的数据元素的集合
4种基本结构:
1.线性结构:结构中的数据元素之间存在一个对一个的关系
2.树形结构:结构中的数据元素之间存在一个对多个的关系
3.图状结构或网状结构:结构中的数据元素之间存在多个对多个的关系
4.集合:结构中的数据元素之间除了“同属于一个集合”的关系之外别无关系
数据结构的形式定义为:数据结构是一个二元组
Data_Structure=(D,S):D为数据元素的有限集,S是D上关系的有限集
逻辑结构:结构定义中的关系描述
存储结构/物理结构:数据结构在计算机中的表示,包括数据元素的表示和关系的表示
计算机中最小单位:位
数据元素:若干个位组合起来形成的一个串(元素/节点可以看成数据元素在计算机中的一个映射)
数据域:当数据元素由若干数据项组成时,位串中对应于各个数据项的子位串为数据域
数据元素在计算机中的表示方法:顺序映像和非顺序映像
顺序映像:借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系
非顺序映像:借助指示元素存储地址的指针来表示元素之间的逻辑关系
数据元素在计算机中的存储结构:顺序存储结构和链式存储结构
数据类型是一个值的集合和定义在这个值集上的一组操作的总称。例如:整型变量,其值集为某个区间上的整数,定义在其上的操作为加减乘除和取模等算术运算
若按其值的不同特性,可以分为下列三种类型:
原子类型:属原子类型的变量的值是不可分割的。例如:C语言中的基本类型(整型、实型、字符型和枚举类型)、指针类型和空类型
结构类型:结构类型的值是由若干成分按某种结构组成的,因此是可以分解的,并且它的成分可以是非结构的,也可以是结构的。
固定聚合类型:属于该类型的变量,其值由确定数目的成分按某种结构组成
可变聚合类型:构成可变聚合类型“值”的成分的数目不确定
和数据结构的形式定义相对应,抽象数据类型可用以下三元组表示:
(D,S,P)/D表示数据对象,S是D上的关系集,P是对D的基本操作集。定义抽象数据类型:
ADT 抽象数据类型名{
数据对象:<数据对象的定义>
数据关系:<数据关系的定义>
基本操作:<基本操作的定义>
}ADT 抽象数据类型名
基本操作的定义格式:
基本操作名(参数表)
      初始条件:<初始条件描述>//执行操作之前数据结构和参数应该满足的条件,若不满足则操作失败返回出错信息
      操作结果:<操作结果描述>//操作正常完成之后数据结构的变化和应返回的结果
基本操作有两种参数:赋值参数只为操作提供输入值
                                 引用参数以&打头,除可提供输入值外,还将返回操作结果

例:
ADT Triplet{
数据对象:D={e1,e2,e3|e1,e2,e3∈ElemSet(定义了关系运算的某个集合)}
数据关系:R1={<e1,e2>,<e2,e3>}
基本操作:
IsAscending(T)
初始条件:三元组T已存在。
操作结果:如果T的3个元素按升序排列,则返回1,否则返回0.
}ADT Triplet
多边数据类型:其值的成分不确定的数据类型
  • 2、抽象数据类型的表示与实现
抽象数据类型通过固有数据类型来表示和实现,即利用处理器中已存在的数据类型来说明新的结构,用已经实现的操作来组合新的操作。
C语言的一些核心子集:
  1. 预定义常量和类型
  2. 数据结构的表示(存储结构)用类型定义(typedef)描述
  3. 自定义函数
  4. 赋值语句
  5. 选择语句
  6. 循环语句
  7. 结束语句
  8. 输入输出语句
  9. 注释
  10. 基本函数
  11. 逻辑运算约定
  • 3、算法和算法分析
算法的性质:有穷性,确定性,可行性,输入,输出
算法设计的要求:正确性,可读性,健壮性,效率和低存储量需求
算法效率的度量:
事后统计的方法(使用计算机内部的计时功能)
事前分析估算:一个算法是由控制结构(顺序、分支和循环3种)和原操作(指固有数据类型的操作)构成的,则算法时间由这两者共同决定



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值