【数据结构】第一章 精华—绪论1.1

408数据结构笔记(2023更新中...) 408计算机考研笔记 阅读详情

数据结构基本概念

1. 数据结构的定义

数据结构是计算机科学中用于组织和存储数据的方式,目的是高效地进行数据的操作和管理。它包括数据元素的存储方式和对数据元素的操作方法。

    数据结构的基本概念

  • 数据结构:用于组织和存储数据的方式,以便高效地进行操作和管理。数据结构定义了数据元素之间的关系以及对数据元素的操作方法。

  • 数据元素:数据结构中的基本单元,可能是简单数据(如整数、字符)或复杂数据(如对象、记录)。

  • 数据项:数据元素的具体实例,可以是基本数据类型或复合数据类型的一部分。

2. 数据结构的分类

  1. 线性数据结构:

    • 数组(Array):一组具有相同数据类型的元素,存储在连续的内存位置中。支持随机访问,适合需要频繁访问元素的场景。
    • 链表(Linked List):由一系列节点组成,每个节点包含数据和指向下一个节点的指针。适合需要动态内存分配和频繁插入、删除操作的场景。
    • 栈(Stack):遵循“后进先出”(LIFO)原则的数据结构。主要操作包括Push(入栈)和Pop(出栈)。
    • 队列(Queue):遵循“先进先出”(FIFO)原则的数据结构。主要操作包括Enqueue(入队)和Dequeue(出队)。
  2. 非线性数据结构:

    • 树(Tree):由节点组成的层次结构,每个节点有零个或多个子节点。常见类型包括二叉树、AVL树和红黑树。
    • 图(Graph):由节点和边组成的结构,节点通过边连接。可以是有向图或无向图,用于表示网络、路径等关系。

3.数据结构的三个基本要素

  1.     逻辑结构(Logical Structure):
    • 描述数据元素及其之间的关系,即数据的抽象形式。逻辑结构关注的是数据如何在逻辑上组织,而不涉及具体的存储实现。例如,树的逻辑结构关注节点及其父子关系,而不考虑数据是如何在内存中实际存储的。
    • 存储结构(Storage Structure):

      • 描述数据在计算机内存中的实际存储方式。存储结构关注的是数据的具体实现和存储细节。常见的存储结构包括:
        • 顺序存储结构:如数组,通过连续的内存位置存储数据。
        • 非顺序:

          • 链式存储结构:如链表,通过节点之间的指针链接存储数据。

          • 索引存储。

          • 散列存储(哈希存储)

    • 运算(Operations):

      • 数据结构支持的各种操作,包括对数据元素进行的操作。运算定义了如何操作数据元素和数据结构本身。常见的运算包括:
        • 插入(Insertion):将新元素添加到数据结构中。
        • 删除(Deletion):从数据结构中移除元素。
        • 查找(Search):定位并检索特定的元素。
        • 更新(Update):修改数据结构中元素的值。
        • 遍历(Traversal):访问和处理数据结构中的所有元素。

4. 数据结构的选择

选择合适的数据结构取决于应用需求,包括:

  • 存储需求:数据结构的存储效率。
  • 操作效率:插入、删除、查找等操作的时间复杂度。
  • 内存使用:数据结构的空间复杂度。
  • 应用场景:数据结构的适用性,例如图用于网络表示,树用于层次化数据。

5. 时间复杂度和空间复杂度

  • 时间复杂度:衡量算法在执行过程中所需的时间,通常以大O符号表示,如O(1)、O(n)。
  • 空间复杂度:衡量算法执行时所需的额外内存空间。
  • 其他相关术语

  • 栈顶(Top):栈中最后添加的元素,Push操作将元素添加到栈顶,Pop操作从栈顶移除元素。
  • 队头(Front):队列中最早添加的元素,Enqueue操作将元素添加到队尾,Dequeue操作从队头移除元素。
  • 叶节点(Leaf Node):树中没有子节点的节点。
  • 内存分配(Memory Allocation):为数据结构分配内存空间的过程,包括静态分配(如数组)和动态分配(如链表)。

Q-如何区分ADT&数据结构?

“可以用ADT定义一个完整的数据结构。”

这句话的意思是你可以使用抽象数据类型(ADT)来描述一个完整的数据结构的接口和操作,而不必关心它的具体实现细节。换句话说,ADT定义了数据结构的行为和操作,而数据结构则是实现这些操作的具体方式。

详细解释

  1. ADT定义的数据结构:

    • 抽象数据类型(ADT)提供了一个逻辑接口,定义了数据结构的操作和行为。例如,栈(Stack)作为ADT定义了操作如Push、Pop、Peek等,以及这些操作的行为(例如,栈遵循“后进先出”(LIFO)原则)。
    • 这些操作定义了你如何与数据结构交互,但不指定如何在底层实现这些操作。
  2. 数据结构的实现:

    • 数据结构是实现ADT的具体方式。你可以使用多种数据结构来实现相同的ADT。例如,栈ADT可以通过数组或链表来实现:
      • 数组实现:使用数组来存储栈的元素,栈顶对应数组的末尾,Push操作将元素添加到数组末尾,Pop操作从数组末尾移除元素。
      • 链表实现:使用链表来存储栈的元素,栈顶是链表的头节点,Push操作在链表头部插入新节点,Pop操作从链表头部移除节点。

抽象数据类型(ADT)

  • 定义:抽象数据类型定义了数据的逻辑结构和对数据可以执行的操作,而不涉及具体的实现方式。
  • 重点:关注于“做什么”而不是“怎么做”。
  • 示例:
    • 栈(Stack):一个栈的抽象数据类型定义了后进先出(LIFO)的行为,它包括操作如Push(入栈)、Pop(出栈)、Peek(查看栈顶元素)等。

数据结构

  • 定义:数据结构是实现抽象数据类型的具体方法。它描述了数据在内存中的组织方式和操作细节。
  • 重点:关注于“怎么做”。
  • 示例:
    • 数组:可以用来实现栈,其中数组的末端作为栈顶。
    • 链表:可以用来实现栈,其中链表的头节点作为栈顶。

关系与区别

  • 抽象数据类型(ADT) 是关于操作和行为的定义。例如,栈作为ADT定义了如何操作数据(推入、弹出、查看栈顶元素),但没有涉及具体的数据存储和操作实现。
  • 数据结构 是具体实现这些操作的方式。例如,使用数组或链表来实现栈的数据存储和操作。

例子

  • 栈的ADT:定义了栈的操作,例如Push、Pop、Peek等。这些操作的逻辑和效果是你需要了解的,但如何在内存中实现这些操作(例如使用数组或链表)并不在抽象数据类型的定义中。
  • 栈的数据结构:具体的实现方式。比如:
    • 数组实现:用一个数组来存储栈的元素,栈顶对应数组的最后一个元素。
    • 链表实现:用链表来存储栈的元素,栈顶是链表的头节点。

总结

  • 抽象数据类型(ADT) 是“规范”或“接口”,定义了数据的操作和行为。
  • 数据结构 是“实现”,描述了如何在计算机中具体地存储和操作这些数据。
《大话数据结构》-程杰自学数据结构感悟 悟:探索一个新的领域,例如写书,本来就会有许多困难,对照我自身也是如此。但是,怕而不退,畏而不缩,这是我和作者所共同追求的,幸福感满满! 阅读详情

相关推荐

【专栏必读】王道考研408数据结构+算法设计与分析万字笔记使用说明及章节导航

各位老铁思维导图在我整理完笔记后会放上去的,我需要根据王道的思维导图重新再做一遍 文章目录一:有关注意事项二:关于专栏三:学习建议四:各专栏导航(各位老铁别催,质量优先)(1)第一章:绪论(2)第二章:线性表(3)第三章:栈和队列第四章:串第五章:二叉树第六章:图 首先感谢王道大大(手动比心),很用心在做了,大家可以看其中两节是否符合胃口 (王道408考研数据结构)第五章树-第三节1:二叉树遍历(先序、中序和后序) (王道408考研数据结构)第五章树-第四节2:平衡二叉树(AVL)及其旋转 一:有.

快乐江湖的博客 5万+

数据结构知识点全面总结—精华版

链式存储时,相邻数据元素可随意存放,但所占存储空间分两部分,一部分存放结点值,答:在顺序队中,当尾指针已经到了数组的上界,不能再有入队操作,但其实数组中还有空。思路:先让数据分块有序,即分成若干子表,要求每个子表中的数据元素值都比后一块中的。优点:让关键字值小的元素能很快前移,且序列若基本有序时,再用直接插入排序处理,时。此树的特点是:树中所有结点的值均大于(或小于)其左右孩子,此树的根结点(即堆顶)队列的定义及操作,队列的删除在一端(队尾),而插入则在队列的另一端(队头)。那么,从循环队列中删。

weixin_58045538的博客 1万+

OpenCV实战:5分钟搞定图像拼接(附Python代码)

本文通过OpenCV实战教程,详细讲解如何使用Python在5分钟内完成图像拼接。重点介绍`findHomography`函数和单应性矩阵的应用,提供完整的代码示例和常见问题解决方案,帮助开发者快速掌握图像拼接技术。

weixin_26833503的博客 117

数据结构学习总结(1、2章)

数据结构总结

Asir_Y的博客 133

JetLinks社区版VS企业版:手把手教你用PostgreSQL+Redis搭建物联网中台(Win7实测)

本文详细对比了JetLinks社区版与企业版的核心差异,并提供了在Windows 7系统上,使用PostgreSQL和Redis搭建物联网中台的完整部署教程。文章深入解析了从环境准备、后端服务构建到前端部署的每一步,为开发者在资源有限环境下构建高性价比物联网平台提供了清晰的实战指南。

w1x2y3的博客 300

window下移动设备/硬盘报错位置不可用

移动硬盘指示灯亮,但电脑上不显示 报错信息 : 无法访问E:\。参数错误。 报错原因: 移动硬盘打不开提示参数错误,是因为这个H盘的文件系统内部结构损坏导致的。要怎么恢复里面的数据呢? https://jingyan.baidu.com/article/cb5d6105a80242005c2fe0c3.html 解决办法 : 不用格式化修复方法 方法一: 1、单击–开始–运行–输入cmd; 2、...

qq_40907977的博客 4920

王道数据结构课代表 - 考研数据结构 第六章 图 究极精华总结笔记

数据结构与算法 笔记导航🚥🚥🚥 🥬 第一章 绪论 🥕 第二章 线性表 🥪 第三章 栈和队列 🍊 第四章 串-KMP(看毛片算法) 🍒 第五章 树和二叉树 🍀 第六章 图 🍚 第七章 查找(B树、散列表) 🧄 第八章 排序 (内部排序:八大排序动图演示与实现 + 外部排序) 🍔 数据结构与算法 复试精简笔记 🎨 408 全套初复试笔记汇总 传送门 🏃‍🏃‍🏃‍ 如果本篇文章对大家起到帮助的话,跪求各位帅哥美女们,求赞👍 、求收藏、求关注!

clzZ2的博客 8808

【专业书1】量化交易——从入门到精通

股票季节性策略几乎失效了,但商品期货的仍有效,因为其季节性需求源于真实的经济需求而非投机。交易策略获利的前提:交易价格处于均值回归(低价时买入)或动量状态(降价时先做空后以更低价买入),否则在随机游走状态下是无法有效交易的。构建交易策略实际上是在决定:在特殊条件、特定时间尺度下价格趋势的呈现(均值回归/趋势走势),以及用什么价格作为初始判断的参考价格。如果以高夏普比率为目标,需要更高的交易频率:基于大数定律,押注越多,偏离均值收益的偏差就越小。买同比最好的股票,卖同比最差的股票。但在不同的时间尺度下可以。

weixin_44589682的博客 1534

数据结构复习记录:绪论

绪论

m0_49564079的博客 179

AI安全攻防:十六进制编码与表情符号如何绕过ChatGPT安全限制

在人工智能安全领域,提示词工程是影响大语言模型行为的关键技术。其核心原理在于通过精心设计的输入文本,引导模型生成特定内容或执行特定任务。这项技术的价值在于能够深入探究模型的理解机制与决策边界,对于模型优化、安全测试及功能开发具有重要意义。在实际应用场景中,研究人员常利用编码转换、符号插入等方法构造输入,以测试模型安全护栏的鲁棒性。近期,一种结合十六进制编码与表情符号的组合攻击手法受到关注,该方法通过信息伪装与语义干扰,试图绕过模型内置的内容过滤机制,这凸显了当前AI安全在输入预处理与语义理解协同防御上面临的

weixin_30633405的博客 441

OpenClaw进行安全测试(附使用场景案例)

test-master 是一个全面的测试专家,覆盖功能测试、性能测试、安全测试三大领域。这里我们重点来看下使用test-master如何进行安全测试。使用 test-master 时,可以针对以下高频领域进行专项安全扫描:✅ OWASP Top 10 测试✅ SQL 注入测试✅ XSS 测试✅ CSRF 测试✅ 认证 / 授权测试。

十二测试录 326

王道数据结构课代表 - 考研数据结构 第三章 栈和队列 究极精华总结笔记

数据结构与算法 笔记导航🚥🚥🚥 🥬 第一章 绪论 🥕 第二章 线性表 🥪 第三章 栈和队列 🍊 第四章 串-KMP(看毛片算法) 🍒 第五章 树和二叉树 🍀 第六章 图 🍚 第七章 查找(B树、散列表) 🧄 第八章 排序 (内部排序:八大排序动图演示与实现 + 外部排序) 🍔 数据结构与算法 复试精简笔记 🎨 408 全套初复试笔记汇总 传送门 🏃‍🏃‍🏃‍ 如果本篇文章对大家起到帮助的话,跪求各位帅哥美女们,求赞👍 、求收藏、求关注!

clzZ2的博客 5957

最新Python爬虫实战(入门爬虫篇)——案例8:图书网畅销榜数据采集(详细爬虫思路截图+抓包动图演示+完整爬虫代码+详细注释)

本次案例通过 Python 爬虫技术,成功实现了对图书网畅销榜多页数据的批量爬取与 Excel 保存。代码采用模块化设计,包含分页参数构造、API 接口请求、JSON 数据解析、Excel 数据持久化等完整流程;通过配置模拟浏览器的请求头,有效规避基础反爬策略,保证请求的稳定性。整个爬虫逻辑遵循 “分页遍历 → 接口请求 → JSON 解析 → 提取图书信息 → 保存到 Excel” 的标准流程,与电商类接口爬取范式高度一致。

努力让自己发光,对的人才能迎着光而来 29万+

初试811-数据结构(C语言)

在语言描述上,程序必须是用规定的语言来写,而算法很随意;在执行时间上,算法所描述的步骤一定是有限的,而程序可以无限地运行下去;算法是对特定问题求解步骤的描述,它是指令有限序列;算法是程序设计的核心,算法的好坏很大程度上决定一个程序的效率,一个好的算法可以降低程序的时间复杂度和空间复杂度,先选出一个好的算法,配合一种适宜的数据结构,这种程序的效率会大大提高算法是解决问题的步骤;程序是算法的代码实现;算法要依靠程序来完成功能;程序需要算法作为灵魂;

qq_63699113的博客 897

Python 爬虫实战:攻克小红书种草笔记,抓取美妆好物推荐数据

通过本次 Python 爬虫实战,我们成功地从小红书爬取了美妆种草笔记的数据,并进行了存储、处理、分析和可视化展示。在这个过程中,我们不仅掌握了爬虫技术的基本应用,还学会了如何对动态加载的数据进行处理和分析。然而,本次爬虫任务也存在一些局限性,例如仅爬取了部分笔记的数据,且未对笔记中的图片和视频内容进行分析。在未来的工作中,我们可以进一步优化爬虫程序,爬取更多笔记的数据,并深入分析笔记中的多媒体内容、用户行为模式等,为美妆品牌和消费者提供更有价值的数据支持。

u014481728的博客 3255

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

《数据结构》C语言版 (清华严蔚敏考研版) 全书知识梳理

写在前面: 恰逢期末复习,用了几天时间结合老师勾画的重点以及课件教材等,将全书重要内容做了个大整合。一方面便于自己复习记忆,另一方面po出来让更多需要的人也可以做个参考。 同类梳理: 《数据库系统概论》第五版(王珊版)全书知识梳理 《计算机组成原理》第五版(唐朔飞考研版) 全书知识梳理 《数据结构》C语言版 (清华严...

12 26 25 的博客 22万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

王道数据结构课代表 - 考研数据结构 第二章 线性表 究极精华总结笔记(C版本)

数据结构与算法 笔记导航🚥🚥🚥 🥬 第一章 绪论 🥕 第二章 线性表 🥪 第三章 栈和队列 🍊 第四章 串-KMP(看毛片算法) 🍒 第五章 树和二叉树 🍀 第六章 图 🍚 第七章 查找(B树、散列表) 🧄 第八章 排序 (内部排序:八大排序动图演示与实现 + 外部排序) 🍔 数据结构与算法 复试精简笔记 🎨 408 全套初复试笔记汇总 传送门 🏃‍🏃‍🏃‍ 如果本篇文章对大家起到帮助的话,跪求各位帅哥美女们,求赞👍 、求收藏、求关注!

clzZ2的博客 1万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

计算机数据结构知识点总结,数据结构知识点全面总结—精华版

数据结构知识点总结,个人整理版,期末宝典系列第1章绪论内容提要:◆数据结构研究的内容。针对非数值计算的程序设计问题,研究计算机的操作对象以及它们之间的关系和操作。数据结构涵盖的内容:◆基本概念:数据、数据元素、数据对象、数据结构、数据类型、抽象数据类型。数据——所有能被计算机识别、存储和处理的符号的集合。数据元素——是数据的基本单位,具有完整确定的实际意义。数据对象——具有相同性质的数据元素的集合...

weixin_33603111的博客 947

王道数据结构课代表 - 考研数据结构 第八章 排序(内部排序:八大排序动图演示与实现 + 外部排序) 究极精华总结笔记(C版本)

数据结构与算法 笔记导航🚥🚥🚥 🥬 第一章 绪论 🥕 第二章 线性表 🥪 第三章 栈和队列 🍊 第四章 串-KMP(看毛片算法) 🍒 第五章 树和二叉树 🍀 第六章 图 🍚 第七章 查找(B树、散列表) 🧄 第八章 排序 (内部排序:八大排序动图演示与实现 + 外部排序) 🍔 数据结构与算法 复试精简笔记 🎨 408 全套初复试笔记汇总 传送门 🏃‍🏃‍🏃‍ 如果本篇文章对大家起到帮助的话,跪求各位帅哥美女们,求赞👍 、求收藏、求关注!

clzZ2的博客 1万+

王道数据结构课代表 - 考研数据结构 第四章 串-KMP(看毛片算法) 究极精华总结笔记(C版本)

数据结构与算法 笔记导航🚥🚥🚥 🥬 第一章 绪论 🥕 第二章 线性表 🥪 第三章 栈和队列 🍊 第四章 串-KMP(看毛片算法) 🍒 第五章 树和二叉树 🍀 第六章 图 🍚 第七章 查找(B树、散列表) 🧄 第八章 排序 (内部排序:八大排序动图演示与实现 + 外部排序) 🍔 数据结构与算法 复试精简笔记 🎨 408 全套初复试笔记汇总 传送门 🏃‍🏃‍🏃‍ 如果本篇文章对大家起到帮助的话,跪求各位帅哥美女们,求赞👍 、求收藏、求关注!

clzZ2的博客 6717

王道数据结构课代表 - 考研数据结构 第七章 查找(B树、散列表) 究极精华总结笔记(C版本)

数据结构与算法 笔记导航🚥🚥🚥 🥬 第一章 绪论 🥕 第二章 线性表 🥪 第三章 栈和队列 🍊 第四章 串-KMP(看毛片算法) 🍒 第五章 树和二叉树 🍀 第六章 图 🍚 第七章 查找(B树、散列表) 🧄 第八章 排序 (内部排序:八大排序动图演示与实现 + 外部排序) 🍔 数据结构与算法 复试精简笔记 🎨 408 全套初复试笔记汇总 传送门 🏃‍🏃‍🏃‍ 如果本篇文章对大家起到帮助的话,跪求各位帅哥美女们,求赞👍 、求收藏、求关注!

clzZ2的博客 8909

王道数据结构课代表 - 考研数据结构 第五章 树和二叉树 究极精华总结笔记

数据结构与算法 笔记导航🚥🚥🚥 🥬 第一章 绪论 🥕 第二章 线性表 🥪 第三章 栈和队列 🍊 第四章 串-KMP(看毛片算法) 🍒 第五章 树和二叉树 🍀 第六章 图 🍚 第七章 查找(B树、散列表) 🧄 第八章 排序 (内部排序:八大排序动图演示与实现 + 外部排序) 🍔 数据结构与算法 复试精简笔记 🎨 408 全套初复试笔记汇总 传送门 🏃‍🏃‍🏃‍ 如果本篇文章对大家起到帮助的话,跪求各位帅哥美女们,求赞👍 、求收藏、求关注!

clzZ2的博客 7538

邓俊辉数据结构学习-0-绪论

邓俊辉数据结构学习笔记 绪论 知识储备 离散数学基础 概率基础 如何评价一个算法 渐进分析:大O记号 问题:随着规模的增长,计算成本如何增长? 这里关系的是足够大的问题。 即当 n >> 2的时候 需执行的基本操作次数:T(n) = ? 需占用的存储单元数:S(n) = ? // 有时候,不考虑,为什么? 目前还不明白 估算能力大成: 像呼吸一样估算。 算法分析的俩个任务 正确...

weixin_30527143的博客 205

计算机数据结构图知识点,数据结构知识点全面总结精华版.doc

绪论内容提要:◆ 数据结构研究的内容。针对非数值计算的程序设计问题,研究计算机的操作对象以及它们之间的关系和操作。数据结构涵盖的内容:◆ 基本概念:数据、数据元素、数据对象、数据结构、数据类型、抽象数据类型。数据——所有能被计算机识别、存储和处理的符号的集合。数据元素——是数据的基本单位,具有完整确定的实际意义。数据对象——具有相同性质的数据元素的集合,是数据的一个子集。数据结构——是相互之间存在...

weixin_36368404的博客 224

数据结构基本概念

@[TOC]数据结构第一章(绪论) 概念与术语 1.数据:所有能被输入到计算机中并被计算机程序加工、处理的所有符号的总称。(整数,字符,声音,图像,图形等) 2.数据元素:数据的基本单位。(元素,节点,记录,顶点)在计算机程序中通常作为一个整体考虑。 3.数据项:一个数据元素可以由若干个数据项组成,数据项是数据不可分割的最小单位。 4.数据对象:由性质相同(类型相同)的数据元素组成的集合,数据对象是数据的一个子集。 数据>数据对象>数据元素>数据项 数据:图中的所有数据。 数据项:表中的

onlynb的博客 853
上一篇: 【DevEco】USB真机调试no device屡战屡败经验总结
d14na
博客等级 码龄3年 163粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值