#数据结构_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越大算法执行时间越长,算法执行大致上等于语句执行时间的总和,语句执行时间为该条语句的重复次数和时间的乘积


相关文章
|
10月前
|
存储 C++
c++数据结构
c++数据结构
58 0
|
10月前
|
NoSQL 容器 消息中间件
数据结构 2.2.3
数据结构 2.2.3
|
10月前
|
存储 程序员 定位技术
什么是数据结构
什么是数据结构
135 1
|
存储
数据结构之栈
栈:栈是限定仅在表尾进行插入和删除操作的线性表。“栈”者,存储货物或供旅客住宿的地方,可引申为仓库、中转站,引入到计算机领域里,就是指数据暂时存储的地方,所以才有进栈、出栈的说法
47 0
|
存储 算法 数据库
【数据结构】初识(上)
【数据结构】初识(上)
102 0
数据结构之栈的实现
今天给大家介绍一种特殊的数据结构——栈,栈和我们之前介绍的链表和顺序表一样都是线性结构,那栈为什么特殊呢?接下来请大家和小编一起细细了解。
116 2
|
存储 算法 C语言
初识数据结构
初识数据结构
81 0
|
存储 算法 C语言
数据结构成神篇1-初学数据结构
今天我们开始数据结构的学习,当然,这个有些概念是十分抽象的,只看文章是不一定能懂的,或者说会耗费不少的时间。所以我会持续在B站上面更新讲解视频,都是自己的一些理解和想法。会拿出来和大家一起分享,都是免费的。原创不易,希望大家可以三连支持一下,也希望能给大家带来进步。
117 0
数据结构成神篇1-初学数据结构
|
存储 算法 JavaScript
数据结构到底是什么?
“数据结构是数据对象,以及存在于该对象的实例和组成实例的数据元素之间的各种联系。这些联系可以通过定义相关的函数来给出。” ——《数据结构、算法与应用》
307 0
数据结构到底是什么?
|
算法 索引
数据结构 静态查找
数据结构 静态查找
244 0
数据结构 静态查找