24考研数据结构-——绪论

news2024/11/24 15:50:19

数据结构

  • 引用文章
  • 第一章:绪论
    • 1.0 数据结构在学什么
    • 1.1 数据结构的基本概念
    • 1.2 数据结构的三要素
    • 1.3 算法的基本概念

引用文章

在此基础上增加自己的学习过程: 《王道》数据结构笔记整理2022

1.2数据结构三要素——逻辑结构和物理结构与数据运算之间的关系
1.3抽象数据结构: 抽象数据

第一章:绪论

1.0 数据结构在学什么

计算机组成原理、操作系统、数据结构和计算机网络之间的关系

  • 如何使用程序代码把现实世界的问题信息化
  • 如何使用计算机高效地处理这些信息从而创造价值


信息化的世界:数据结构是对数据的处理,对现实世界的数字化,生成数字文件再由操作系统完成对这些文件的管理。计算机组成原理,又是完成这一切的硬件基础。

1.1 数据结构的基本概念

  • 数据:数据是信息的载体,是描述客观事物属性的数、字符以及所有能输入到计算机中并被程序识别和处理的符号的集合。数据是计算机程序加工的原料(计算机处理的函数的入口,传递的参数)
  • 数据元素
  1. 数据元素是数据的基本单位,通常作为一个整体(描述现实世界的一个真实存在的个体)进行考虑和处理。一个数据元素可由若干数据项组成,数据项是构成数据元素的不可分割的最小单位。例如,学生记录(一个个体)就是一个数据元素,它由学号、姓名、性别等数据项组成。
  2. 若一个数据项由多个更细分的属性组成,则称为组合项
  • 结构:各个元素之间的关系
  • 数据结构:数据结构是相互之间存在一种或多种特定关系的数据元素的集合
  • 数据对象:数据对象是具有相同性质的数据元素的集合,是数据的一个子集
数据结构与数据对象之间的关系:
同样的数据元素,可以根据不同的逻辑组成不同的数据结构
不同的数据元素,可以根据一样的逻辑组成相同的数据结构

1.2 数据结构的三要素

在这里插入图片描述

  1. 数据的逻辑结构
    逻辑结构是指数据元素之间的逻辑关系,即从逻辑关系上描述数据。
  • 集合结构
    各个数据元素同属一个集合别无其它关系
  • 线性结构
    数据元素之间是一对一关系,前驱后继(首尾除外)
  • 图形结构
    数据元素之间是一对多的关系
  • 树形结构
    数据元素之间是多对多的关系
  1. 数据的物理结构(存储结构)
    通过计算机表示数据元素的逻辑关系,存储结构是指数据结构在计算机中的表示(又称映像),也称物理结构。

存储结构:

  • 顺序存储:把逻辑上相邻的元素存储在物理位置也相邻的存储单元中,元素之间的关系由存储单元的邻接关系来体现
  • 链式存储:逻辑上相邻的元素在物理位置上可以不相邻,借助指示元素存储地址的指针来表示元素之间的逻辑关系。
  • 索引存储:在存储元素信息的同时,还建立附加的索引表,索引表中的每项称为索引项,索引项的一般形式是**(关键字,地址)**
  • 散列存储:根据元素的关键字直接计算出该元素的存储地址,又称哈希(Hash)存储。
ps:
若采用顺序存储,则各个数据元素在物理上必须是连续的,若采用非顺序存储,则各个数据元素在物理上可以是离散的。
数据的存储结构会影响存储空间分配的方便程度,和对数据运算的速度。
  1. 数据的运算
    施加在数据上的运算包括运算的定义和实现
    运算的定义是针对逻辑结构的,指出运算的功能;运算的实现是针对存储结构的,指出运算的具体操作步骤。

  2. 三要素之间的关系

1.2数据结构三要素——逻辑结构和物理结构与数据运算之间的关系

1.确定一种存储结构,就意味者在计算机中表示出数据的逻辑结构(计算机中数据结构的映射)。2.存储结构不同(例如下边的例子,顺序跟链表存储的运算方式的实现不同,但是运算方式的定义是相同的),也会导致运算的具体实现不同。
3.确定了存储结构,才能实现数据结构。

逻辑结构:

  • 运算会和逻辑结构有关,和物理结构无关。

物理结构:

  • 这四种结构各有优缺点:顺序虽然可以实现直接存取,但是对于空间的利用不充分;链式虽然很好利用了空间,但是得到元素只能顺序存取,这样很不方便,并且还要有额外的空间给指针;索引虽然是结合了上面两种的优缺点,但额外的索引表增加了内存损耗;散列结构不可避免会有冲突的危险。

数据运算:

  • 运算包括定义和实现。运算的定义是针对逻辑结构的,运算的实现是针对存储结构的。
  • 如果逻辑结构是线性的(A-B-C),物理结构是链式的(addr0[A]->addr2[B]->addr1[C]),运算的定义是找到B的前一个元素。B的前一个元素是A,但是如果实现起来,必须先找到addr0,再找addr2,确认了addr2中是B,就得到了A这个结果。但是如果这里的物理结构是顺序的,直接可以从addr0得到(B的前一个地址是addr0)。很明显两种不同的链式结构,同一种运算实现的方法是不同的。

在这里插入图片描述
5. 数据类型、抽象数据类型

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

  • 原子类型:其值不可再分的数据类型。如bool 和int 类型。
  • 结构类型:其值可以再分解为若干成分(分量)的数据类型(struct)

抽象数据类型(Abstract Data Type,ADT):抽象数据组织及与之相关的操作。
ADT用数学化的语言定义数据的逻辑结构、定义运算。与具体的实现无关

抽象数据结构: 抽象数据
在这里插入图片描述
5.探讨数据结构的方式:
在这里插入图片描述

1.3 算法的基本概念

程序=数据结构(原料)+算法(方法步骤)

  • 算法(algorithm):是对特定问题求解步骤的一种描述,它是指令的有限序列,其中的每条指令表示一个或多个操作。

  • 算法的特性:(必要性而不是算法的定义,即不满足则不是算法,满足不一定是算法
    1.有穷性:一个算法必须总在执行有穷步之后结束,且每一步都可在有穷时间内完成。
    2.确定性:算法中每条指令必须有确定的含义,对于相同的输入只能得到相同的输出。
    3.可行性:算法中描述的操作都可以通过已经实现的基本运算执行有限次来实现。
    4.输入:一个算法有零个或多个输入(可以没有输入),这些输入取自于某个特定的对象的集合。
    5.输出:一个算法有一个多个输出(不能没有输出),这些输出是与输入有着某种特定关系的量。

  • 好的算法达到的目标:
    1.正确性:算法应能够正确的求接问题。
    2.可读性:算法应具有良好的可读性,以帮助人们理解。
    3.健壮性:输入非法数据时,算法能适当地做出反应或进行处理,而不会产生莫名奇妙地输出结果。
    4.效率与低存储量需求:效率是指算法执行的时间(时间复杂度),存储量需求是指算法执行过程中所需要的最大存储空间(空间复杂度),这两者都与问题的规模有关。

在这里插入图片描述

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

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

相关文章

JMeter+提取token变成全局变量

注:没打码,就代码乱写的接口,具体请按照你要跑的接口来输入值 一、创建线程组 二、配置HTTP请求默认值 IP地址一模一样,可以配置一个默认值,就不用每次都输入IP地址了 三、配置登陆ip 配置登陆地址,通过…

iOS 测试 iOS 端 Monkey 测试

说起 Monkey 测试,大家想到的是 monkey 测试只有安卓有,monkey 测试只针对安卓 app,今天给大家分享一下 Monkey 测试在 iOS 端也能跑!iOS 端 app 也能使用 Monkey 测试来执行稳定性测试。 一、环境准备 1、准备 Mac 设备&#x…

物业小区管理系统登录页面以及逻辑实现

学习vue3和springboot那肯定是少不了写项目的,在各个项目中肯定是离不开登录和注册的事情的,这也是一个项目起步的需求。 接下来我们来看看我们所写的项目起步。首先搭建vue3和springboot的项目环境,这些搭建大家自行完成即可,架子…

windows 修改 RDP 远程桌面端口号

打开 PowerShell , 执行regedit 依次展开 PortNumber HKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet \Control \Terminal Server \WinStations \RDP-Tcp 右边找到 PortNumber ,对应修改自己的端口号 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Co…

深度学习:tf.keras实现模型搭建、模型训练和预测

在sklearn中,模型都是现成的。tf.Keras是一个神经网络库,我们需要根据数据和标签值构建神经网络。神经网络可以发现特征与标签之间的复杂关系。神经网络是一个高度结构化的图,其中包含一个或多个隐藏层。每个隐藏层都包含一个或多个神经元。神经网络有多…

echarts3d饼图实现

一、vue中使用3d饼图 效果图: 二、使用步骤 1.引入库 安装echarts 在package.json文件中添加 "dependencies": {"echarts": "^5.1.2""echarts-gl": "^1.1.0",// "echarts-gl": "^2.0.8&quo…

基于AutoEncoder自编码器的MNIST手写数字数据库识别matlab仿真

目录 1.算法理论概述 2.部分核心程序 3.算法运行软件版本 4.算法运行效果图预览 5.算法完整程序工程 1.算法理论概述 MNIST手写数字数据库是机器学习中常用的数据集,包含了0到9这10个数字的手写图片。本文介绍一种基于AutoEncoder自编码器的MNIST手写数字识别算…

高校大数据教材推荐-Hadoop大数据开发基础(第2版)(微课版)

Hadoop大数据开发基础(第2版)(微课版)是“十四五”职业教育国家规划教材,是大数据应用开发“1X”职业技能等级证书配套系列教材,也是“以纸质教材为核心、以互联网为载体”的新形态教材,配套39个微课视频(二维码随扫随学&#xff…

DASCTF 2023 0X401七月暑期挑战赛 Reverse部分题解

文章目录 controlflow1. 异或0x4012. 加i*i3. 异或i*(i1)4. 减i5. 乘36. swap7. judge解题脚本 webserver1.关键函数2. 求约束条件3.Z3求解 controlflow 动态调试观察执行情况 1. 异或0x401 2. 加i*i 3. 异或i*(i1) 注意这里是从data[10i]开始 4. 减i 5. 乘3 6. swap 注意…

redis的简单入门

文章目录 一、前言1.1、什么是Redis? 二、简介三、Redis下载与安装四、Redis服务启动与停止五、Redis设置密码进行远程连接5.1、设置密码5.2、远程连接 六、Redis数据类型七、Redis常用命令7.1、字符串String命令7.2、哈希hash操作命令7.3、列表list操作命令7.4、集合set操作命…

机器人SLAM导航学习-All in one

参考引用 张虎,机器人SLAM导航核心技术与实战[M]. 机械工业出版社,2022.本博客未详尽之处可自行查阅上述书籍 一、编程基础篇 1. ROS 入门必备知识 ROS学习笔记(文章链接汇总) 2. C 编程范式 《21天学通C》读书笔记&#xff0…

leetcode743. 网络延迟时间 DJ

https://leetcode.cn/problems/network-delay-time/ 有 n 个网络节点,标记为 1 到 n。 给你一个列表 times,表示信号经过 有向 边的传递时间。 times[i] (ui, vi, wi),其中 ui 是源节点,vi 是目标节点, wi 是一个信…

python_day13

reduceByKey算子,聚合 列表中存放二元元组,元组中第一个为key,此算子按key聚合,传入计算逻辑 from pyspark import SparkConf, SparkContext import osos.environ["PYSPARK_PYTHON"] "D:/dev/python/python3.10…

Geriit使用出错记录

拉取服务器代码(clone ) 1、执行:git clone ssh:xxxxxx && scp -p -P 29418 xxxxxxxxx 1、报错:Unable to negotiate with XX.XX.XX.XX port XX:: no matching key exchange method found. Their offer: diffie-hellman…

第五章 编程之免交互

免交互:不需要人为控制就可以完成的自动化操作(自动化运维) shell脚本和面交互是一个概念,但是两种写法 shell:默认解释器是bash 使用i/o(输入/输出)重定向的方式,将命令的列表提供…

pytest钩子函数(二):初始化钩子

前言 pytest这个框架提供了非常多的钩子。通过这些钩子我们可以对pytest 用例收集、用例执行、报告输出等各个阶段进行干预,根据需求去开发对应的插件,以满足自己的使用场景。 01 什么是钩子函数? 钩子函数在pytest称之为Hook函数,它pytes…

【头歌】二叉树的二叉链表存储及基本操作

第1关:先序遍历创建二叉链表存储的二叉树及遍历操作 任务描述 本关任务:以二叉链表作存储结构存储二叉树,利用先序递归遍历创建二叉树,并依次进行二叉树的前序、中序、后序递归遍历。 相关知识 在顺序存储结构中,利用数组下标表示元素的位置及元素之间孩子或双亲的关系…

失去中国市场的三星继续称霸全球,中国手机的份额反而进一步下降了

市调机构canalys公布了二季度全球手机市场的数据,数据显示三星、苹果的市场份额保持稳定并位居全球前二,三星的表现显然让人称奇,一直被唱衰,却一直都稳稳占据全球手机市场第一名。 从Canalys公布的数据可以看到,三星以…

【Go】 map 精髓理解

map go map 的底层结构 hmap,的四个元素 然后再讲一下 buckets 的元素,讲一下 hash 冲突,和解决方法 再讲一下,增量扩容和等量扩容 再讲一下增删改查的过程,就查询过程 map 基础 向值为 nil 的 map 添加元素会发生 pa…

青枫壁纸小程序V1.4.0(后端SpringBoot)

引言 那么距离上次的更新已经过去了5个多月,期间因为忙着毕业设计的原因,更新的速度变缓了许多。所以,这次的更新无论是界面UI、用户功能、后台功能都有了非常大的区别。希望这次更新可以给用户带来更加好的使用体验 因为热爱,更…