#数据结构_1

简介: #数据结构_1

11.数据结构


a.“线性”数据结构:元素之间存在1对1的线性关系,施加于对象上的增删改查,类似结构比如学生管理系统;


b.“树”数据结构:元素之间存在1对多的层次关系,计算机与人对弈:


c.“图”数据结构:最短路径问题,网络工程图、网络通信图;


2.基本概念


a.数据(Data):客观事物的符号表示;


b.数据元素(Data Element):数据的基本单位;


c.数据项(Data Object):组成数据元素的最小单位;


d.数据对象(Data Object):性质相同的数据元素集合;


e.数据结构(Data Structure):数据元素之间存在特定关系的集合,包括逻辑结构和存储结构;


1.逻辑结构:从具体问题抽象出来的数学模型,数据元素之间的关系,线性结构包括线性表、栈和队列、字符串、广义表,非线性结构包括树、二叉树、有向图、无向图;


a.集合结构(非线性结构)


b.线性结构


c.树结构(非线性结构)


d.图结构/网状结构(非线性结构)


2.存储结构/物理结构


a.顺序存储结构:连续地址存放


b.链式存储结构:指针类型、结点地址


f.数据类型(Data Type):除了C语言提供的整形、实型、字符型等,允许用户自定义例如数组、结构体、指针等;


g.抽象数据类型(Abstract Data Type,ADT):利用数据类型进一步构造出线性表、栈、队列、树、图等复杂的抽象数据类型,包括三部分:数据对象、数据对象关系的集合、数据对象的基本操作集合;


ADT 抽象数据类别名{


数据对象:(数据对象的定义〉


数据关系:(数据关系的定义〉


基本操作:(基本操作的定义〉


}ADT 抽象数据类型名


3.算法(Algorithm):解决某类问题而规定的有限长的操作序列


a.算法特性


i.有穷性:在有穷时间内执行有穷步后结束;


ii.确定性:应对每种情况,不会产生二义性;


iii.可行性:所有操作可以通过已经实现的运算执行;


iv.输入:有0个或多个输入;


v.输出:至少有1个输出,无输出的算法没有意义;


b.优劣基本


i.正确性


ii.可读性


iii.健壮性:对于非法输入能适当的处理;


iv高效性


1.时间高效:设计合理,效率高,可用时间复杂度衡量;


2.空间高效:存储容量合理,可用空间复杂度衡量;


c.复杂度:问题规模是算法求解问题输入量的多少,一般用整数n表示,在排序运算中n为参加排序的记录数,在矩阵运算中n为矩阵的阶数,在多项式运算中n为多项式的项数,在集合运算中n为集合中的元素,在树有关的运算中n为树的结点个数,在图有关的运算中n为图的顶点或边数,n越大算法执行时间越长,算法执行大致上等于语句执行时间的总和,语句执行时间为该条语句的重复次数和时间的乘积


相关文章
|
存储 机器学习/深度学习 算法
进入数据结构的世界
进入数据结构的世界
|
5月前
|
存储 算法 调度
|
4月前
|
存储 算法 索引
|
6月前
|
存储 算法
【数据结构】什么是数据结构?
【数据结构】什么是数据结构?
50 0
|
6月前
|
NoSQL 容器 消息中间件
数据结构 2.3.7
数据结构 2.3.7
|
存储 算法 容器
数据结构 > 什么是数据结构?
数据结构 > 什么是数据结构?
|
11月前
数据结构 2.2 单循环链表
数据结构 2.2 单循环链表
55 0
|
算法 Python
02 数据结构
02 数据结构
35 0
|
存储 算法 搜索推荐
【BaseArray 数据结构】
【BaseArray 数据结构】
|
存储 算法
【数据结构】初识(下)
【数据结构】初识(下)
73 0