【数据结构】初识数据结构

引入:

哈喽大家好,我是野生的编程萌新,首先感谢大家的观看。数据结构的学习者大多有这样的想法:数据结构很重要,一定要学好,但数据结构比较抽象,有些算法理解起来很困难,学的很累。我想让大家知道的是:数据结构非常有趣,很多算法是智慧的结晶,我希望大家在学习数据结构的过程是一种愉悦的心情感受。因此我开创了《数据结构》专栏,在这里我将把数据结构内容以有趣易懂的方式展现给大家。

1.数据结构的起源

早期人们都把计算机理解为数值计算工具,就是感觉计算机时用来计算的。所以计算机解决问题时,应该是先从具体问题中抽象出一个适当的数据类型,设计出一个解此数据模型的算法,然后在编写程序,得到一个实际的软件。

 可现实中,我们更多的不是解决数值计算的问题,而是需要一些科学有效的手段(比如表、树和图等数据结构)的帮助,才能更好的解决问题。所以:数据结构是一门研究非数值计算的程序设计问题中的操作对象以及它们之间的关系和操作等相关等问题的学科。这样看来是不是有点难以理解,我直接简单点概括:研究数据在计算机中的存储方式。1968年,美国的高德纳教授在其所写的《计算机程序设计艺术》第一卷《基本算法》中,较系统地阐述了数据的逻辑结构和存储结构及其操作,开创了数据结构的课程体系。同年,“数据结构”作为一门独立的课程,在计算机科学的学位课程中开始出现,也就是说,从那之后计算机相关专业的学生开始接收“数据结构”的“折磨”--其实说是享受才对。

2.基本概念和术语

说到数据结构是什么,我们得先来了解什么时数据。正所谓“巧妇难为无米之炊”,再强大的计算机,也是要有“米”下锅才可以干活的,否则就是一堆破铜烂铁,这个“米”就是数据。

2.1数据

数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别的,并输入给计算机处理的符号集合,数据不仅仅包括整型、实型等数值类型,还包括字符及声音、图片、视频等非数值类型。比如我们现在常用的一些搜索引擎,一般会有网页、图片、视频等分类,图片是图像数据、音频当然是声音类型,视频更不用说了,而网页其实指的就是全部数据的搜索,包括重要的数字和字符等文字数据。再比如我们在学校学习的各种各样的知识都可以成为数据,分享给大家使用。也就是说,我们这里说的数据,其实就是符号,而这些符号必须具备两个前提:

  1. 可以输入到计算机中
  2. 能被计算机程序处理

2.2数据元素

数据元素是组成数据的、具有一定意义的基本单位,在计算机中通常作为整体处理,也被称为记录。比如:在人类中什么是数据元素,当然是人啦。

2.3数据项

数据项一个数据元素可以由若干个数据项组成,比如人这样的数据元素,可以有眼睛、耳朵、手等这些数据,也可以有姓名、年龄、性别等数据。数据项是数据不可分割的最小单位。在“数据结构”中,我们把数据项定义为最小的单位,是有助于我们解决问题的,所以,记住数据项是数据的最小单位。但当我们真正讨论问题的时候,数据元素才是数据结构中建立数据模型的着眼点。当我们讨论一本书时,是讨论这本书里面的角色这样的“数据元素”,而不是针对这些角色的姓名、年龄这些展开讨论。

2.4数据对象

数据对象:是性质相同的数据元素的集合,是数据的子集。什么叫性质相同,是数据元素相同数量和类型的数据项,比如,在刚才的例子中,人都有姓名、性别等相同的数据项。既然数据对象是数据的子集,在实际应用中,处理的数据元素通常具有相同的性质,在不产生混肴的情况下,我们都将数据对象简称为数据。

2.5数据结构

结构简单点来说就是关系,比如在化学中我们学过的分子结构,就是说组成分子的原子之间的排列方式。严格点说,结构是指各个组成部分相互搭配和排列的方式。在现实世界中,不同数据元素之间不是独立的,而是存在特定的关系,我们将这些关系称为结构,那数据结构是什么呢?数据结构是相互之间存在一种或多种特定关系的数据元素的集合。在计算机中,数据元素并不是孤立、杂乱无章的,而是具有内在联系的数据集合,数据元素之间存在的一种或者多种特定关系,也就是数据的组成形式。

3.逻辑结构和物理结构

按照视点的不同,我们把数据结构分为了逻辑结构和物理结构两部分。

3.1逻辑结构

逻辑结构:是指数据对象中数据元素之间的相互关系。逻辑结构主要分为4种。

3.1.1集合结构

集合结构:集合结构中的数据元素除了同属于一个集合外,它们之间又没有其他的关系。各个数据元素是“平等的”,他们的共同属性是“同属于一个集合”。数据结构中的集合关系就类似于数学中的集合。

3.1.2线性结构 

线性结构:线性结构中的数据元素之间是一对一的关系。

3.1.3树形结构

树形结构:树型结构中的元素之间存在一种一对多的层次关系。(有点像我们的族谱)

3.1.4图形结构 

图形结构:图形结构的数据元素是多对多的关系。

 我们在用示意图表示数据的逻辑结构时,要注意两点:

  1. 将每一个数据元素看作一个结点,用圆圈表示。
  2. 元素之间的逻辑关系用结点之间的连线表示。如果这个关系是有方向的,那就像我这个一样用箭头表示。

3.2 物理结构

物理结构:是指数据的逻辑结构在计算机中的存储形式。数据的存储结构正确反映数据元素之间的逻辑关系这才是最为关键的,数据元素的存储结构形式有两种:顺序存储和链式存储。在未来我们学习顺序表和链表时会更加深入学习。

3.2.1顺序存储结构

顺序存储结构:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。这种存储结构说来也简单,就是排队,数组元素都按顺序排好,每个元素占一小段空间。和我们学习过的数组一样。

3.2.2链式存储结构

链式存储结构:把数据元素存放在任意的存储单元里面,这组存储单元可以是连续的,也可以是不连续的。打个比方就像我们去医院挂号,每个人去领个号,等待的时候你想去哪就去哪,只要及时回来就行。数据元素的存储关系并不能反映他的逻辑关系,因此需要一个指针存放数据元素的地址,这样就能通过地址找到相关数据元素的位置了。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

图题目:最大网络秩

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法思路和算法代码复杂度分析 题目 标题和出处 标题:最大网络秩 出处:1615. 最大网络秩 难度 4 级 题目描述 要求 由 n \texttt{n} n 座城市和一些连接这些城市的道路 roads \texttt{ro…

测径仪视窗镜片的维护和保养步骤

关键字:测径仪镜片,测径仪保养,测径仪维护,视窗镜片维护,视窗镜片擦拭保养,视窗镜片的检查, 视窗镜片定期保养 视窗镜片是保护光学镜头免受污染和损伤的光学平镜片,它的污染和破损会直接影响光学系统的测量结果。 视窗镜片一般在受到轻微污染(指镜片上…

机器学习之SMOTE重采样--解决样本标签不均匀问题

一、SMOTE原理 通常在处理分类问题中数据不平衡类别。使用SMOTE算法对其中的少数类别进行过采样,以使其与多数类别的样本数量相当或更接近。SMOTE的全称是Synthetic Minority Over-Sampling Technique 即“人工少数类过采样法”,非直接对少数类进行重采…

.[[MyFile@waifu.club]].svh勒索病毒数据库恢复方案

.[[MyFilewaifu.club]].svh勒索病毒有什么特点? .[[MyFilewaifu.club]].svh是一种最近多发的勒索病毒,它通过加密受害者的文件并要求支付赎金来解锁,从而达到勒索钱财的目的。恢复重要数据请添加技术服务号(safe130)。以下是关于这种病毒的详…

如何压缩word文档的大小?6个方法教你方便的压缩word文档

如何压缩word文档的大小?6个方法教你方便的压缩word文档 以下是六个常用的软件和方法,可以帮助您方便地压缩Word文档大小: 使用Microsoft Word内置功能: 在Microsoft Word中,您可以使用内置的压缩功能来减小文档的大…

导数和偏导数练习

导数题目列表 偏导数题目列表 这里是上述50个导数和偏导数练习题的答案: 导数答案列表 偏导数答案列表 更多问题咨询 Cos机器人

Linux CPU 飙升 排查五步法

排查思路-五步法 1. top命令定位应用进程pid 找到最耗时的CPU的进程pid top2. top-Hp[pid]定位应用进程对应的线程tid 找到最消耗CPU的线程ID // 执行 top -Hp [pid] 定位应用进程对应的线程 tid // 按shift p 组合键,按照CPU占用率排序 > top -Hp 111683.…

纯血鸿蒙APP实战开发——短视频切换实现案例

短视频切换实现案例 介绍 短视频切换在应用开发中是一种常见场景,上下滑动可以切换视频,十分方便。本模块基于Swiper组件和Video组件实现短视频切换功能。 效果图预览 使用说明 上下滑动可以切换视频。点击屏幕暂停视频,再次点击继续播放…

安卓跑马灯效果

跑马灯效果 当一行文本的内容太多,导致无法全部显示,也不想分行展示时,只能让文字从左向右滚动显示,类 似于跑马灯。电视在播报突发新闻时经常在屏幕下方轮播消息文字,比如“ 快讯:我国选手 *** 在刚刚结束…

我独自升级崛起游戏账号登录注册教程 (5.8最新版)

新韩漫公司所发布的这项动作游戏已向玩家们敞开大门,为大家带来了前所未有的游戏体验和乐趣。这个游戏内包含了大量令人着迷的故事、令人印象深刻的战斗场景以及丰富多样的娱乐元素。在这其中最为引人注目的一点就是游戏内容中融入了“虚拟角色”的元素,…

使用PyQt5设计系统登录界面—了解界面布局

前言:自学的过程中充分认识到网络搜索的重要性,有时候一篇通俗易懂的文章会让我这种入门级的小白更易上手,俗话说“开头难,难开头”,只要开了一个好头就不怕知难而退。 如何安装QT Designer界面设计所需要的环境 1. 如…

华为手机连接电脑后电脑无反应、检测不到设备的解决方法

本文介绍华为手机与任意品牌电脑连接时,出现连接后电脑无反应、检测不到手机连接情况的解决方法。 最近,因为手机的存储空间愈发紧缺,所以希望在非华为电脑中,将华为手机内的照片、视频等大文件备份、整理一下。因此,需…

2024年化学材料、清洁能源与生物技术国际学术会议(ICCMCEB2024)

2024年化学材料、清洁能源与生物技术国际学术会议(ICCMCEB2024) 会议简介 2024国际化学材料、清洁能源和生物技术大会(ICCMCEB2024)将在长沙隆重举行。本次会议旨在汇聚来自世界各地的化学材料、清洁能源和生物技术领域的专家学者,共同探…

vue管理系统导航中添加新的iconfont的图标

1.在官网上将需要的图标,加入项目中,下载 2.下载的压缩包中,可以选择这两个,复制到项目目录中 3.如果和之前的iconfont有重复,那么就重新命名 4.将这里的.ttf文件,也重命名为自己的 5.在main文件中导入 6.在…

3W 3KVDC 隔离单输出 DC/DC 电源模块——TPG-3W 系列

TPG-3W系列是一款额定功率为3W的隔离产品,国际标准引脚,宽范围工作、温度–40℃ 到 105℃,在此温度范围内都可以稳定输出3W,并且效率非常高,高达88%,同时负载调整率非常低,对于有输出电压精度有…

音频可视化:原生音频API为前端带来的全新可能!

音频API是一组提供给网页开发者的接口,允许他们直接在浏览器中处理音频内容。这些API使得在不依赖任何外部插件的情况下操作和控制音频成为可能。 Web Audio API 可以进行音频的播放、处理、合成以及分析等操作。借助于这些工具,开发者可以实现自定义的音…

MySQL使用GROUP BY使用技巧和注意事项总结

⛰️个人主页: 蒾酒 🔥系列专栏:《mysql经验总结》 目录 写在前面 GROUP BY简介 基本用法 单列分组 多列分组 使用聚合函数 过滤分组结果 按表达式分组 使用 GROUP BY 的排序 注意事项 遵循原则 使用能够唯一标识每个分组的字段或字…

PCB 阻抗设置

凡亿电路有详细的阻抗设计 https://baijiahao.baidu.com/s?id1773006310888936808&wfrspider&forpc 差分基本上是100ohm, 单端是50ohm 布线阻抗通常是, -设置叠层关系 层的定义设计原则: 1)主芯片相临层为地平面,提供器…

Whisper、Voice Engine推出后,训练语音大模型的高质量数据去哪里找?

近期,OpenAI 在语音领域又带给我们惊喜,通过文本输入以及一段 15 秒的音频示例,可以生成既自然又与原声极为接近的语音。值得注意的是,即使是小模型,只需一个 15 秒的样本,也能创造出富有情感且逼真的声音。…

图像处理-图像平滑

图像平滑 前言一、概念介绍1.1 图像的平滑1.2 图像中噪声的分类1.3 MATLAB的添加噪音代码 二、空间域平滑滤波2.1 均值滤波2.2 原理计算 总结 前言 在图像的获取、传输和存储过程常常收到各种噪声的干扰和影响,使得图像的质量下降,为了获得高质量的数字…