Maoyl's blog Maoyl's blog
首页
  • 前端基础

    • HTML
    • CSS
    • CSS动画
    • JavaScript文章
    • stylus
  • 性能优化

    • 《性能优化》笔记
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《JavaScript高级程序设计》笔记
    • 《ES6 教程》笔记
    • 《JavaScript设计模式》笔记
    • 《TypeScript 从零实现 axios》
    • TypeScript笔记
    • JS设计模式总结笔记
  • 前端框架

    • Vue相关
    • React相关
  • 前端监控

    • 前端监控简介
  • 学习笔记

    • 《Vue》笔记
    • 《React》笔记
    • 小程序学习笔记
  • 后端基础

    • Nodejs
  • 学习笔记

    • 数据结构
  • 技术文档
  • GitHub技巧
  • 博客搭建
  • 网页性能
  • 学习笔记

    • 《Git》学习笔记
    • 《Vim》学习笔记
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

maoyln

日日行,不怕千万里
首页
  • 前端基础

    • HTML
    • CSS
    • CSS动画
    • JavaScript文章
    • stylus
  • 性能优化

    • 《性能优化》笔记
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《JavaScript高级程序设计》笔记
    • 《ES6 教程》笔记
    • 《JavaScript设计模式》笔记
    • 《TypeScript 从零实现 axios》
    • TypeScript笔记
    • JS设计模式总结笔记
  • 前端框架

    • Vue相关
    • React相关
  • 前端监控

    • 前端监控简介
  • 学习笔记

    • 《Vue》笔记
    • 《React》笔记
    • 小程序学习笔记
  • 后端基础

    • Nodejs
  • 学习笔记

    • 数据结构
  • 技术文档
  • GitHub技巧
  • 博客搭建
  • 网页性能
  • 学习笔记

    • 《Git》学习笔记
    • 《Vim》学习笔记
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 第一讲 基本概念

    • 1 什么是数据结构
      • 文献
      • GPT4
    • 2 什么是算法
    • 3 应用实例:最大子列和问题
  • 第二讲 线性结构

  • 第三讲 树(上)

  • 第四讲 树(中)

  • 第五讲 树(下)

  • 第六讲 图(上)

  • 《数据结构》学习笔记
  • 第一讲 基本概念
maoyln
2024-06-14
目录

1 什么是数据结构

# 什么是数据结构

官方没有统一定义,下面有几种说法

# 文献

文献

  • “数据结构是数据对象,以及存在于该对象的实例和组成实例的数据元素之间的各种联系。这些联系可以通过定义相关的函数来给出。” ------ Sartaj Sahni,《数据结构、算法与应用》
  • “数据结构是ADT(抽象数据类型Abstract Data Type)的物理实现。” ------ Clifford A.Shaffer,《数据结构与算法分析》
  • “数据结构(data structure)是计算机中存储、组织数据的方式。通常情况下,精心选择的数据结构可以带来最优效率的算法。” ------ 中文维基百科

# GPT4

定义

数据结构是计算机存储、组织数据的方式,使得我们可以高效地访问和修改数据。简单来说,数据结构就是数据的组织、管理和存储格式,其使用的目的是为了高效地执行数据的处理和检索操作。

数据结构主要分为两大类:线性数据结构和非线性数据结构

1、线性数据结构:数据元素之间是一对一的关系。常见的线性数据结构包括:

  • 数组:在内存中占据连续空间的数据结构,可以通过索引快速访问元素。
  • 链表:元素由节点组成,每个节点包含数据和指向下一个节点的指针,不需要连续的内存空间。
  • 栈(Stack):遵循后进先出(LIFO)原则的集合。
  • 队列(Queue):遵循先进先出(FIFO)原则的集合。

2、非线性数据结构:数据元素之间可以是一对多或多对多的关系。常见的非线性数据结构包括:

  • 树(Tree):元素以分支关系组织,每个节点有零个或多个子节点,没有循环引用。
  • 图(Graph):由节点(顶点)和连接节点的边组成,节点之间的关系可以是任意的。
  • 堆(Heap):是一种特殊的完全二叉树结构,通常用于实现优先队列。

数据结构的选择依赖于特定场景下的需求,如数据的插入、删除、搜索操作的频率,以及数据量的大小等。不同的数据结构有其各自的优势和局限性。例如,数组支持快速的随机访问,但在中间插入或删除元素的效率较低;而链表在插入和删除操作时效率较高,但访问特定元素的速度较慢。

编辑 (opens new window)
#数据结构
上次更新: 2025/04/18, 01:42:12
2 什么是算法

2 什么是算法→

最近更新
01
GSAP动画库——如何高效写动画
04-17
02
自适应方案PxToRem
09-10
03
性能优化-requestAnimationFrame
08-10
更多文章>
Theme by Vdoing | Copyright © 2019-2025 备案号:京ICP备19058102号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式