第一章绪论

第1章绪论

1.1数据结构和研究内容

早期,主要用于数值计算

现在越来越多的被用于非数值的计算,如

  • 学生学籍管理系统,计算机处理的对象是各种表,元素之间存在简单一对一的线性关系,因此这类问题的数学模型就是各类线性表,施加于对象上的操作有查找、插入和删除等。这类数学模型被称为“线性”数学模型。

  • 人机对弈问题,人机对弈问题的数学模型就是如何将树结构表示为棋盘和棋子,算法是博弈的规则和策略。

  • 最短路径问题,最短路径问题的数学模型就是图结构,算法是求出两点之间的最短路径。

    小结

    非数值计算问题的数学模型不再是数学方程,而是诸如线性表,数和图的数据结构。因此,简单地说,数据结构是一门研究非数值计算程序设计中的操作对象,以及这些对象之间的关系和操作的学科。

1.2 基本概念和术语

1.数据:

​ 是能输入计算机且能被计算机处理的各种符号的集合。

  1. 信息的载体
  2. 是对客观事物符号化的表示
  3. 能够被计算机识别,存储和加工

2.数据元素:

数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理,也简称为元素,或称为记录、结点或顶点。

数据项:构成数据元素的不可分割的最小单位。

数据、数据元素、数据项三者之间的关系:数据>数据元素>数据项

3.数据对象:

是性质相同的数据元素的集合,是数据的一个子集。

例如:整数的数据对象是集合N={0,±1,±2,……}

字母字符数据对象是集合C={'A','B',……,'Z'}

表1也可看作一个数据对象(由若干个学生信息组成)

数据元素与数据对象

  • 数据元素——组成数据的基本单位

    (与数据的关系:是集合的个体)

  • 数据对象——性质相同的数据元素的集合

    (与数据的关系:集合的子集)

4.数据结构:

相互之间存在一种或多种特定关系的数据元素的集合

数据结构是带 ”结构" 的数据元素的集合, “结构” 就是指数据元素之间存在的关系。

数据结构包括逻辑结构和存储结构两个层次。

1.逻辑结构:是从逻辑关系上描述数据

两个要素:

一是数据元素

二是关系(数据元素间的逻辑关系)

(1) 集合结构

数据元素之间除了 “属于同一集合” 的关系外,别无其他关系。

(2) 线性结构

数据元素之间存在一对一的关系。

(3) 树结构

数据元素之间存在一对多的关系。

(4) 图结构或网状结构

数据元素之间存在多对多的关系。

*非线性结构:集合结构、树结构和图结构

2. 存储结构

数据对象在计算机中的存储表示称为数据的存储结构,也称为物理结构。

两种基本的存储结构:顺序存储结构和链式存储结构。

(1)顺序存储结构

借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系,通常借助程序设计语言的数组类型来描述。

(2) 链式存储结构

要求所有的元素依次存放在一片连续的存储空间中,链式存储结构通常借助于程序设计语言的指针类型来描述

3.数据类型:

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

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

一般指用户定义的、表示应用问题的数学模型,以及定义在这个模型上的一组操作的总称,包含三部分:数据对象,数据对象上关系的集合以及对数据对象的基本操作的集合

抽象数据类型的定义格式如下:

ADT    抽象数据类型名{

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

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

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

} ADT  抽象数据类型名


2.基本操作定义格式

基本操作名(参数表)

初始条件:(初始条件描述〉

操作结果

1.4 算法和算法分析

1.算法的定义和特性

(1)有穷性

(2)确定性

(3)可行性

(4)输入(零个或多个)

(5)输出(一个或多个)

2.评价算法优劣的基本标准

(1)正确性

(2)可读性

(3)健壮性

(4)高效性

3.算法的时间复杂度

衡量算法效率的方法主要有两类:事后统计法和事前分析估算法。

语句频度:一条语句的重复执行次数

问题规模:是算法求解问题输入量的多少,是问题大小的本质表示,一般用整数n表示。问题规模n对不同的问题含义不同。

它表示随问题规模n的增大, 算法执行时间的增长率和f(n)的增长率相同, 称做算法的渐近时间复杂度, 简称时间复杂度

4.算法的空问复杂度

关于算法的存储空间需求,类似于算法的时间复杂度,我们采用渐近空间复杂度算法所需存储空间的量度,简称空间复杂度

posted @     阅读(177)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示