数据结构与算法-绪论

本文详细介绍了数据结构的基础概念,包括数据元素、逻辑结构、存储结构以及数据操作。重点讲解了线性结构、树结构和图结构,并阐述了数据类型与抽象数据类型的区别。此外,文章还探讨了算法的基本概念,强调了算法的五大特征。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:求大佬带


提示:以下是本篇文章正文内容,下面案例可供参考

一、数据结构的基本概念

1.数据,数据元素和数据集合

  1. 数据:数据,是一种符号(文字、数字、语义符号、图形等)信息媒介;
  2. 数据元素:数据的基本单位,表示数据(信息)中的一组数据
  3. 数据项:数据元素中的基本单位
  4. 关键字:标识数据元素的数据项(类似于数据库中的候选码)
  5. 主关键字:可以唯一标识数据元素的关键字(类似于数据库中的主键)

ps:数据元素可以是一个单一的原子项,也可以由多个数据项组成
(原子项:)

2.数据的逻辑结构

  1. 数据结构:由N(N>=0)个数据元素组成的有限集合
  2. 数据的结构:数据的逻辑结构,数据的存储结构和对数据的操作
  3. 数据的逻辑结构:是数据元素之间的逻辑结构。数据的逻辑结构主要分为种。一是线性结构,二是树结构,三是图结构。
    • 线性结构:由n个相同的数据类型的数据元素组成的有限数列,除去首尾两个元素,其他元素都有前驱元素和后驱元素。也称顺序关系。

      • eg:将数据元素有顺序的连接起来(不可重复连接)。比如:数组
    • 树结构: 数据元素是结点。边表示层次关系。

      • eg:族谱(从爷爷辈开始)
        在这里插入图片描述
      • 线性结构是树的特例
    • 图由顶点集合和边集合组成的数据结构,图中的数据元素称为顶点,顶点间的关系称为边。图对数据元素之间的关系没有限制。

      • 例如:
        图结构
    • 树是图的特例,线性结构是树的特例

3.数据的存储结构

  1. 顺序存储结构:连续的存储。确定大小并开辟一个连续的空间。(类型必须相同)。确定大小:(相同类型的数据类型的byte位是确定的,byte位✖大小就是开辟空间的大小),通过下标访问(下标×byte位+下标为0的地址得到要访问的数据的地址)。比如:数组
    顺序存储

  2. 链式存储结构:离散存储(数据你想放那就放那),每一个数据元素就是一个结点,结点由数据域,地址域组成。数据域存储数据,地址域存储下一个结点的地址。首位连接就可以组成线性表。

    • 链式存储
      在这里插入图片描述

4.对数据的操作

  1. 初始化
  2. 判断是否为空
  3. 存取
  4. 遍历
  5. 统计数据元素的个数
  6. 插入
  7. 查找
  8. 深拷贝
  9. 排序
  10. 比较相等

5.数据类型于抽象数据类型

  1. 数据类型: 具有相同逻辑意义的一组值的集合,以及定义在中集合上的运算和操作集合。
  2. 抽象数据类型: 自定义的一种数据类型,对其中的运算和操作只给出抽象定义,而不去实现。
    • 数据抽象: “定义于实现相分离”,将一种类型的数据与逻辑含义与具体实现相分离。
    • 声明抽象数据类型
  3. 参考:参考博客

二、算法

1.什么是算法

  1. 算法: 是一个有穷规则的集合,确定了解决某一类问题的操作序列。
    • 特征: 有穷性,确定性,可行性,输入,输出
    • 算法设计的五个目标: 正确性,健壮性,高时间效率,高空间效率,可读性
      算法时间

什么是算法:参考博客
算法时间复杂度:参考博客
算法的空间复杂度:参考博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值