数据结构的基本概念


一、数据结构的基本概念

  1. 数据:数据是信息的载体,是描述客观事物属性的数、字符以及所有能输入到计算机并被程序识别并执行的符号的集合
  2. 数据元素:数据元素是数据的基本单位,通常作为一个整体进行考虑和处理。一个数据元素可以有若干数据项组成,数据项是构成数据元素的不可分割的最小单位。如:学生纪录是一个数据元素,由学号、姓名、性别等数据项组成
  3. 数据对象:数据对象是具有相同性值的数据元素的集合,是数据的一个子集
  4. 数据类型:数据类型是一个值的集合 和 定义在此集合上的一组操作的总称
  5. 数据结构:数据结构是相互之间存在一种或多种特定关系的数据元素的集合

二、数据结构的三要素

1.逻辑结构

数据的逻辑结构:逻辑结构指的是数据元素之间的逻辑关系,即从逻辑关系上描述数据

  1. 线性结构:结构中的元素之间只存在一对一的关系,除了第一个元素以外,每个元素都有唯一的前驱;除了最后一个元素外,每个元素都有唯一的后继(栈、队列)
    在这里插入图片描述

  2. 集合结构:数据元素之间除了同属于一个“集合”外,没有任何关系
    在这里插入图片描述

  3. 树形结构:元素之间存在一对多的关系
    在这里插入图片描述

  4. 图形结构:元素之间存在多对多的关系
    在这里插入图片描述
    数据元素之间的逻辑关系主要有三种:一对一(线性结构),一对多(树形结构),多对多(图形结构)。

2.存储结构(物理结构)

存储结构(物理结构):存储结构是指在计算机中的表示(映象)

  1. 顺序存储:把逻辑上相邻的元素存储在物理位置也相邻的存储单元中,元素之间的关系由存储单元的邻接关系来体现
  2. 链式存储:逻辑上相邻的元素在物理位置上可以不相邻,借助指示元素存储地址的指针来表示元素之间的逻辑关系

数据结构的物理结构只有两种:顺序存储和链式存储,像栈、队列、树、图等从逻辑结构去抽象的,映射到内存中,也是这两种形式

3.数据的运算

数据的运算:施加在数据上的运算包括运算的定义何实现。运算的定义是针对逻辑结构的,指出运算的功能;运算的实现是针对存储结构的,指出运算的具体操作步骤

三、算法的基本概念

恒等式:程序 = 算法 + 数据结构

  1. 算法的特性:

    • 有穷性:一个算法必须在执行有限步骤后结束,并且每一步都可以在有限时间内结束
    • 可行性:算法中的操作都可以通过已经实现的基本运算执行有限次数完成
    • 确定性:算法中的每条指令都要有明确的含义,对于相同的输入,只能得到相同的输出
    • 输入
    • 输出
  2. 一个好的算法的目的

    • 正确性:算法能够正确的解决问题
    • 可读性:良好的算法可以让人们方便理解
    • 健壮性:输入奇怪的数据时,算法能够进行适当的处理,不会输出奇怪的结果
    • 低存储高效率:所占用内存空间小,算法执行效率高

四、问题规模

一个良好的算法,需要达到低存储高效率的目的,那么怎样判断一个算法执行效率高、占用内存少呢?问题规模就是用来统计这个问题

  1. 时间复杂度T(n):一般情况下,一个算法中重复执行的次数是问题规模n的某个函数f(n),算法的时间复杂度记为T(n)= O(n),它表示随着问题规模n的增大,算法执行时间和函数f(n)的增长率相同,称为算法的渐进时间复杂度,简称时间复杂度。
  2. 空间复杂度S(n):算法的空间复杂度S(n)定义为算法所占用的存储空间,它是问题规模n的函数,记为S(n) = O(n)。

五、计算机内存

  1. 内存的作用:计算机程序都是运行在内存中的
  2. 内存如何存储
    在这里插入图片描述

举个例子:考试(手机不允许带入)
将内存当做手机袋。学生进入考场考试,手机不允许带入考场,可以将手机放在门口的手机袋中,然后考完试出考场再取走。每个袋子对应一个编号,对应学生的座位号,坐在哪个座位就将手机放在对应号码的手机袋中,方便考完试后直接取走。
手机袋-------存储单元
编号----------内存地址

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值