【期末不挂科 学习数据结构】

在这里插入图片描述

期末不挂科 学习数据结构

  • 第一章绪论
    • 1.1数据结构的基本概念
      • 1.1.1基本概念和术语
        • 1.数据
        • 2.数据元素
        • 3.数据对象
        • 4.数据类型
        • 5.数据结构
      • 1.1.2数据结构三要素
        • 1.数据的逻辑结构
        • 2.数据的存储结构
        • 3.数据的运算

第一章绪论

1.1数据结构的基本概念

1.1.1基本概念和术语

在这里插入图片描述

1.数据

数据是信息的载体,是描述客观事物属性的数、字符及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。数据是计算机程序加工的原料。

2.数据元素

数据元素是数据的基本单位,通常作为一个整体进行考虑和处理。一个数据元素可有若干数据项组成,数据项是构成数据元素的不可分割的最小单位。例如,学生记录就是一个数据元素,它由学号、姓名、性别等数据项组成。

3.数据对象

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

4.数据类型

数据类型是一个值的集合和定义在此集合上的一组操作的称。

5.数据结构

数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
数据结构包括以下三种内容:逻辑结构、存储结构和数据的运算。

1.1.2数据结构三要素

在这里插入图片描述

1.数据的逻辑结构

逻辑结构是指数据元素之间的逻辑关系,即从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。数据的逻辑结构分为线性结构和非线性结构,线性表是典型的线性结构;集合、树和图是典型的非线性结构。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2.数据的存储结构

存储结构是指数据结构在计算机中的表示,也称物理结构。它包括数据元素的表示和关系的表示。数据的存储结构是用计算机语言实现的逻辑结构,它依赖于计算机语言。数据的存储结构主要有顺序存储、链式存储、索引存储和散列存储。
①顺序存储。把逻辑上相邻的元素存储在物理位置上也相邻的存储单元中,元素之间的关系由存储单元的邻接关系来体现。其优点占用最少的存储空间;缺点是只能使用相邻的一整块存储单元,因此可能产生较多的外部碎片。
在这里插入图片描述

②链式存储。不要求逻辑上相邻的元素在物理位置上也相邻,借助指示元素存储地址的指针来表示元素之间的逻辑关系。其优点是不会出现碎片现象,能充分利用所有存储单元;缺点是每个元素因存储指针而占用额外的存储空间,且只能实现顺序存取。
在这里插入图片描述

③索引存储。在存储元素信息的同时,还建立附加的索引表。索引表中的每项称为索引项,索引项的一般形式是(关键字,地址)。其优点是检索速度快;缺点是附加的索引表额外占用存储空间。另外,增加和删除数据时也要修改索引表,因而会花费较多的时间。
④散列存储。根据元素的关键字直接计算该元素的存储地址,又称哈希存储。其优点是检索、增加和删除结点的操作都很快;缺点是若散列函数不好,则可能出现元素存储单元的冲突,而解决冲突会增加时间和空间开销。

3.数据的运算

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/1693.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cmd中输入npm install,回车——安装node modules依赖,出现报错的【解决方法】

目录 1.正常情况是: 2.当前问题: 3.解决方法: 当拿到一个前端项目的代码文件夹的时候,想要启动项目。 如果项目的代码文件夹里面没有node modules文件夹: 需要打开cmd,然后在里面输入 npm install (可…

Pytorch安装

一、查看 CUDA 版本 使用pip install torch (2.0.0版本),这样安装的torch是直接运行在CPU上的,想要使用GPU版本需要使用对应的cuda版本。 在安装pytorch时我们需要选择对应CUDA版本的pytorch,那如何查看CUDA版本呢? 1.NVIDIA方式…

Java 被挤出前三。。

TIOBE 2023 年 06 月份的编程语言排行榜已经公布,官方的标题是:Python 还会保持第一吗?(Will Python remain number 1?) 在过去的 5 年里,Python 已经 3 次获得 TIOBE 指数年度大奖,这得益于…

AD从原理图到PCB超详细教程

AD超详细教程 前言一、建立一个工程模板二、原理图1.设计原理图。2.使用AD自带库和网上开源原理图库3.画原理图库4.编译原理图 三、PCB1.确定元器件尺寸大小2.绘制PCB Library①使用元器件向导绘制元件库②原理图与PCB的映射 3.绘制PCB①更新PCB②调整元件位置③布线④漏线检查…

多线程7——线程池各参数的意义+四种拒绝策略+代码模拟实现

文章目录 前言一、线程池是什么?二、线程池的使用1.代码使用线程池2.剖析线程池3.线程池的拒绝策略 三、代码模拟实现线程池总结 前言 本人是一个刚刚上路的IT新兵,菜鸟!分享一点自己的见解,如果有错误的地方欢迎各位大佬莅临指导,如果这篇文章可以帮助到你,劳请大…

Python 基本数据类型(五)

文章目录 每日一句正能量List(列表)结语 每日一句正能量 营造良好的工作和学习氛围,时刻牢记宗旨,坚定信念,胸怀全局,埋头苦干,对同事尊重信任谅解,发扬团体协作精神,积极…

使用Xshell服务器跑程序,用pycharm连接服务器远程开发

目标: 1.使用Xshell在服务器上创建自己项目需要的虚拟环境 2.用pycharm实现远程服务器的连接(这样就可以在本地debug或者写代码,然后再用xshell在服务器上跑) 一、使用Xshell在服务器上创建自己项目需要的虚拟环境 1.打开Xshe…

如何在 Linux 中安装、设置和使用 SNMP?

概要 SNMP(Simple Network Management Protocol)是一种用于管理和监控网络设备的协议。它允许网络管理员通过远程方式收集设备的运行状态、性能数据和错误信息,以便进行故障排除和网络优化。在Linux系统中,我们可以安装、设置和使…

Java调用ssl异常,javax.net.ssl.SSLHandshakeException: No appropriate protocol

现象:sqlserver 2017 安装在docker里,系统是mac 13,java 1.8.371运行java程序提示上面ssl错误,根据百度提供的方法,修改文件,重启程序搞定。 解决办法:java.security 找到这个文件修改保存 发…

MySQL-SQL存储过程/触发器详解(上)

♥️作者:小刘在C站 ♥️个人主页: 小刘主页 ♥️努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生! ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏&#xf…

点云配准综述一篇综述《A comprehensive survey on point cloud registration》(翻译)

参照了 2021最新关于点云配准的全面综述 - 知乎,并且加了些自己翻译,全篇的内容可能稍有删减。主要作为个人笔记,阅读了几篇综述,发现这篇是质量较好的,值得花时间细读。 文章分类 文章将配准方法分为了同源配准和不…

基于Python的电影票房爬取与可视化系统的设计与实现

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…