[入门必看]数据结构1.1:数据结构的基本概念

news2024/11/26 16:52:28

[入门必看]数据结构1.1:数据结构的基本概念

  • 第一章 绪论
  • 1.1 数据结构的基本概念
    • 知识总览
    • 1.1.1 基本概念和术语
      • 数据类型、抽象数据类型:
    • 1.1.2 数据结构的三要素
      • 数据的逻辑结构
      • 数据的物理结构(存储结构)
      • 数据的运算
  • 知识回顾与重要考点


第一章 绪论

小题考频:8
大题考频:11


1.1 数据结构的基本概念

难度:☆

知识总览

数据结构

  1. 基本概念
  • 数据
  • 数据元素、数据项
  • 数据对象、数据结构
  • 数据类型、抽象数据类型(ADT)
  1. 三要素
  • 逻辑结构
  • 物理结构(存储结构)
  • 数据的运算

本节概念多,抓大放小,形成知识框架,不必纠结细节概念。


1.1.1 基本概念和术语

  1. 数据:是信息的载体 - 能输入到计算机中并被计算机程序识别
    ——二进制0和1
  2. 数据元素:数据的基本单位,通常作为一个整体进行考虑和处理,可由若干数据项组成。
    ——学生记录 - 数据元素;学号、姓名、性别等 - 数据项
    ——账号 - 数据元素;昵称 - 数据项1;性别 - 数据项2;年 月 日 - 组合项

要根据实际的业务需求来确定什么是数据元素、什么是数据项。

  1. 数据结构:数据结构是相互之间存在一种或多种特定关系的数据元素的集合。
  2. 数据对象:是具有相同性质的数据元素的集合,是数据的一个子集。

数据结构:某个特定门店的排队顾客信息和它们之间的关系 —— 有关系
数据对象:全国所有门店的排队顾客信息 —— 有相同性质


数据类型、抽象数据类型:

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

  • 具体数据类型

1)原子类型。其值不可再分的数据类型。
在这里插入图片描述
2) 结构类型。其值可以再分解为若干成分(分量)的数据类型。

在这里插入图片描述

在结构体中可以定义不同的分量,其可以是不同的数据类型。
可以取哪些值,进行哪些操作,根据具体的业务需求决定。

  • 抽象数据类型

抽象数据类型(Abstract Data Type,ADT)是抽象数据组织及与之相关的操作。

ADT用数学化的语言定义数据的逻辑结构、定义运算。
与具体的实现无关 - 不讨论具体的存储结构。
在这里插入图片描述


1.1.2 数据结构的三要素

数据的逻辑结构

  • 集合
  • 线性结构
  • 树形结构
  • 图状结构(网状结构)
  1. 集合:
    在这里插入图片描述

  2. 线性结构:

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

  1. 树形结构:
    在这里插入图片描述
    在这里插入图片描述

  2. 图结构:
    在这里插入图片描述
    在这里插入图片描述

集合基本不讨论
线性结构在第二、三章
树形结构在第四章
图结构第五章


数据的物理结构(存储结构)

各个数据元素在内存中如何存储
如何用计算机表达数据元素的逻辑关系

  • 顺序存储
  • 链式存储
  • 索引存储
  • 散列存储
  1. 顺序存储。把逻辑上相邻的元素存储在物理位置上也相邻的存储单元中,元素之间的关系由存储单元的邻接关系来体现。

在这里插入图片描述

  1. 链式存储逻辑上相邻的元素在物理位置上可以不相邻,借助指示元素存储地址的指针来表示元素之间的逻辑关系。
    在这里插入图片描述

  2. 索引存储。在存储元素信息的同时,还建立附加的索引表。索引表中的每项称为索引项,索引项的一般形式是(关键字,地址)

在这里插入图片描述

  1. 散列存储。根据元素的关键字直接计算出该元素的存储地址,又称哈希( Hash)存储
    将在第六章,散列表中介绍。

可以将顺序存储以外的几种存储结构统称为:非顺序存储
在这里插入图片描述


绪论部分需要理解三点:

  1. 若采用顺序存储,则各个数据元素在物理上必须是连续的;若采用非顺序存储,则各个数据元素在物理上可以是离散的
    在这里插入图片描述

顺序存储 - 排队
非顺序存储(离散存储) - 取号

  1. 数据的存储结构影响存储空间分配的方便程度

Eg. 如果有人想插队
顺序存储 - 插队位置后所有人挪一位
非顺序存储(离散存储) - 可分配到任何一个空闲的位置

  1. 数据的存储结构影响对数据运算的速度

Eg. 找到第三个人
顺序存储 - 直接找站在第三位的
非顺序存储(离散存储) - 从取的号开始找


数据的运算

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

  • Eg.排队:
  1. 定义:
    逻辑结构 - 线性结构(队列)

结合现实需求定义队列这种逻辑结构件的运算:
①队头元素出队;(叫号)
②新元素入队;(取号)
③输出队列长度;
……

  1. 实现:
    存储结构 - 顺序/链式
    在这里插入图片描述

知识回顾与重要考点

在这里插入图片描述
数据结构这门课着重关注的是数据元素之间的关系,和对这些数据元素的操作,而不关心具体的数据项内容

在这里插入图片描述
定义一个ADT,就是定义了数据的逻辑结构、数据的运算。也就是定义了一个数据结构。

确定一种存储结构,就意味着在计算机中表示出数据的逻辑结构。存储结构不同,也会导致运算的具体实现不同。确定了存储结构,才能实现数据结构

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据库概论】第十一章 数据库并发控制

第十一章 并发控制 在多处理机系统中,每个处理机可以运行一个事务,多个处理机可以同时运行多个事务,实现多个事务并行运行,这就是同时并发方式。当多个用户并发存取数据库时会产生多个事务同时存取同一事务的情况,如果…

ESP32设备驱动-红外寻迹传感器驱动

红外寻迹传感器驱动 1、红外寻迹传感器介绍 红外寻迹传感器具有一对红外线发射管与接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物(反射面)时,红外线反射回来被接收管接收,经过比较器电路处理之后,输出接口会输出一个数字信号(低电平或高电平,取决于电路…

Nginx配置实例-反向代理案例二

实现效果:使用nginx反向代理,根据访问的路径跳转到不同端口服务 nginx监听端口为9000, 访问 http://127.0.0.1:9000/edu/ 直接跳转到127.0.0.1:8080 访问 http://127.0.0.1:9000/vod/ 直接跳转到127.0.0.1:8081 一、准备工作 1. 准备两个tom…

TCP相关概念

目录 一.滑动窗口 1.1概念 1.2滑动窗口存在的意义 1.3 滑动窗口的大小变化 1.4丢包问题 二.拥塞控制 三.延迟应答 四.捎带应答 五.面向字节流 六.粘包问题 七.TIME_WAIT状态 八.listen第2个参数 九.TCP总结 一.滑动窗口 1.1概念 概念:双方在进行通信时&a…

2023年软考高级-系统分析师考试学习指导计划!

2023年软考高级-系统分析师考试学习指导计划! 一、导学阶段 第一天 考试情况及备考攻略:https://www.educity.cn/xuanke/rk/rjsp/?sywzggw 考试介绍:https://www.educity.cn/wangxiao2/c410653/sp110450.html 考试经验分享:h…

如何在Linux中优雅的使用 head 命令,用来看日志简直溜的不行

当您在 Linux 的命令行上工作时,有时希望快速查看文件的第一行,例如,有个日志文件不断更新,希望每次都查看日志文件的前 10 行。很多朋友使用文本编辑的命令是vim,但还有个命令head也可以让轻松查看文件的第一行。 在…

记录使用chatgpt的复杂经历

背景 由于最近要写论文,c站的gpt也变样了,无奈之下和同学借了一个gpt账号,才想起没有npv,不好意思去要,也不想买,于是我找了很多临时免费的直到我看到有一家,邀请10人即可,而且只用…

江苏专转本 专科生的最好出入

专转本 专科生的最好出入(1) 减少每天刷某音,刷朋友圈的时间无所事事、捧着手机刷的不是某音就是朋友圈,三年下来没去成一次图书馆。碎片化信息很大程度只是在浪费时间,不如每天比同龄人至少多出1小时时间,用来看书、护肤、健身。…

磨金石教育摄影技能干货分享|高邮湖上观花海

江苏高邮,说到这里所有人能想到的,就是那烟波浩渺的高邮湖。高邮在旅游方面并不出名,但是这里的自然人文景观绝对不输于其他地方。高邮不止有浩瀚的湖泊,春天的油菜花海同样壮观。春日的午后,与家人相约游玩&#xff0…

C语言--字符串函数1

目录前言strlenstrlen的模拟实现strcpystrcatstrcat的模拟实现strcmpstrcmp的模拟实现strncpystrncatstrncmpstrstrstrchr和strrchrstrstr的模拟实现前言 本章我们将重点介绍处理字符和字符串的库函数的使用和注意事项。 strlen 我们先来看一个我们最熟悉的求字符串长度的库…

【Echart多场景示例应用】Echarts柱状图、折线图、饼图、雷达图等完整示例。 echarts主标题和副标题的位置、样式等设置(已解决附源码)

**【写在前面】**前端时间做一个echarts的页面调整,临时客户要求加一个参数(总容量)显示,当时我就想用个默认的副标题吧,哪知客户和我说得紧跟在主标题后面,于是乎我就根据设置做了一个调整,我也…

燕山大学-面向对象程序设计实验 - 实验1 C++基础

CSDN的各位uu们你们好,今天千泽燕山大学-面向对象程序设计实验 - 实验1 C基础 相关内容, 接下来让我们一起进入c的神奇小世界吧,相信看完你也能写出自己的实验报告!实验一 C基础 1.1 实验目的 1.了解并熟悉开发环境,学会调试程序; 2&#xf…

超过10000人学习的Fiddler抓包教程,只需一小时就可以精通!

如果还是有朋友不太明白的话,可以看看这套视频,有实战讲解 零基础玩转Fiddler抓包在测试领域应用实战!一、Fiddler与其他抓包工具的区别 1、Firebug虽然可以抓包,但是对于分析http请求的详细信息,不够强大。模拟http请…

【Linux】信号的产生、保存、捕捉处理 (四种信号产生、核心存储、用户态与内核态、信号集及其操作函数)

文章目录1、什么是信号?2、信号的产生2.1 通过键盘产生信号2.2 通过系统调用产生信号2.3 硬件异常产生的信号2.4 由软件条件产生的信号2.5 进程的核心转储3、信号的保存4、信号的捕捉4.1 用户态和内核态4.2 用户态到内核态的切换4.3 信号捕捉过程5、信号集操作函数以…

Spring——Spring整合Mybatis(XML和注解两种方式)

框架整合spring的目的:把该框架常用的工具对象交给spring管理,要用时从IOC容器中取mybatis对象。 在spring中应该管理的对象是sqlsessionfactory对象,工厂只允许被创建一次,所以需要创建一个工具类,把创建工厂的代码放在里面&…

Qt不会操作?Qt原理不知道? | Qt详细讲解

文章目录Qt界面开发必备知识UI界面与控件类型介绍Qt设计器原理控件类型的介绍信号与槽机制处理常用控件创建与设置常见展示型控件创建与设置常见动作型控件创建与设置常见输入型控件创建与设置常见列表控件创建于设置Qt中对象树的介绍项目源码结构刨析.pro.hmain.cpp.cppQt界面…

JVM的几种GC

GC JVM在进行GC时,并不是对这三个区域统一回收。大部分时候,回收都是新生代~ 新生代GC(minor GC): 指发生在新生代的垃圾回收动作,因为Java对象大多都具备朝生夕灭的特点,所以minor GC发生得非…

【问题排查】Linux虚拟机无法识别串口与ttyUSB

虚拟机串口连接失败问题 小哥的Linux系统是用虚拟机来装的,最近恰好需要用到串口和Linux进行通信,连接好硬件之后,发现虚拟机上找不到串口。 经查询才发现通过虚拟机启动的系统,正常情况下是无法使用串口进行通信的,需…

Ast2500增加用户自定义功能

备注:这里使用的AMI的开发环境MegaRAC进行AST2500软件开发,并非openlinux版本。1、添加上电后自动执行的任务在PDKAccess.c中列出了系统启动过程中的所有任务,若需要添加功能,在相应的任务中添加自定义线程。一般在两个任务里面添…

隐私计算将改变金融行业的游戏规则?

开放隐私计算 01背景2月底,相关部门印发《数字中国建设整体布局规划》提出,到2025年,基本形成横向打通、纵向贯通、协调有力的一体化推进格局,数字中国建设取得重要进展;到2035年,数字化发展水平进入世界前…