数据结构基础介绍

一.起源及重要性

1968 年,美国的高德纳 Donakl E . Kn uth 教授在其所写的《 计算机程序艺术》第一卷《基本算法 》 中,较系统地阐述了数据的逻辑结构和存储结构及其操作, 开创了数据结构的课程体系 ,数据结构作为一门独立的课程,也在计算机科学的学位课程中开始出现。
重要性:
结构程序设计成为程序设计方法学的主要内容,人们越来越重视"数据结构气认为程序设计的实质是对确定的问题选择一种好的结构,加上设计 种好的算法。可见,数据结构在程序设计当中占据了重要的地位。

二.基本概念和术语

所谓数据结构,就是数据和结构
下面我们先来介绍数据的相关概念
数据的定义:
描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识 别,并输入给计算机处理的符号集合 数据不仅仅包括整型、实型等数值类型,还包括字符及声音、图像、视频等非数值类型。
所谓计算机数据,就是符号,有以下两个要求:
1.可以输入到计算机中
2.能被计算机程序处理
数据元素
是组成数据的、有一 定意义的基本单位,在计 算 机中通常作为整 体处理,也被称为记录。
数据项:
一个数据元素可以自若干个数据项组成。例如:人是一个数据元素,那么人的身高,体重等都是数据项。
数据项是数据不可分割的最小单位 。在数据结构这门课程中,我们把数据项定义为最小单位,是有助于我们更好地解决问题。所以,记住了,数据项是数据的最小单位。但真正讨论问题时,数据元素才是数据结构中建立数据模型的着眼点。就像我们 讨论一 部电影时,是讨论这部电影角色这样的"数据元素",而不是针对这个角色的姓名或者年龄这样的"数据项"去研究分析。
接下来我们再分析结构这个概念:
结构,简单理解就是关系的意思,结构是指各个组成部分相互搭配和排列的方式,在现实世界中,不同数据元素之不是独立的,而是存在特定的关系,我们将这些关系称为结构,那数据结构是什么?
数据结梅:是相互之间存在-种或多种特定关系的数据元素的集舍。
在计算机中,数据元素并不是孤立、杂乱无序的,而是具有内在联系的数据集合。数据元素之间存在的一种或多种特定关系,也就是数据的组织形式 而数据结构就是分析待处理对象的特性及各处理对象之间存在关系

三.数据结构的结构分类

3.1.逻辑结

逻辑结构:是指数据对象中数据元素之间的相互关系
主要分为以下四类:

1.集合结构

定义:

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

2.线性结构

定义:线性结构之间元素是一一对应的。

3.树形结构

定义: 树形结构中的数据元素之间存在一对多的层次关系

4.图形结构

定义: 图形结构的数据元素是多对多的关系
示意图表示数据的逻辑结构时,要注意两点:
将每一个数据元素看做一 ,用圈圈表 示。
元素之闯的逻辑关系用结点之间的连线表示.如果这个关系是有方向的,那么用带箭头的连续表

3.2.物理结构

又叫存储结构

定义:物理结构是指数据的逻辑结构在计算机中的存储形

数据元素的存储结构形式有两种:顺序存储和链式存储。

1.顺序存储结构

定义:数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的

2.链式存储结构

定义:链式存储结构是把数据元素存放在任意的存储单元里,这组存储单元可以是连 续的,也可以是不连续的 数据元素的存储关系并不能反映其逻辑关系,因此需要用一个指针存放数据元素的地址,这样通过地址就可以找到相关联数据元素的位置。

3.3逻辑结构与物理结构对比

逻辑结构是针对具体问题的,是为了解决某个问题, 在对问题理解的基础上,选择一个合适的数据结构表示数据元素之间的逻辑关系。
逻辑结构是面向问题的,而物理结构就是面向计算机的,其基本的目标就是将数 据及其逻辑关系 储到计算机的内存中
数据的存储结构应正确反映数据元素之间的逻辑关系,这才是最为关键的,如何储数据元素之间的逻辑关系,是实现物理结构的重点和难点。
最后,本文借鉴了《大话数据结构》这本书,里面的内容对于小白理解数据结构概念性的东西非常好,希望大家可以自行阅读,加深对数据结构理解。

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

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

相关文章

记录一次postgresql临时表丢失问题

项目相关技术栈 springboot hikari连接池pgbouncerpostgresql数据库 背景 为了优化一个任务执行的速度,我将任务的sql中部分语句抽出生成临时表(create temp table tempqw as xxxxxxxxx),再和其他表关联,提高查询速…

php之jwt使用

PHP JWT(JSON Web Token)是一种用于身份验证和授权的开放标准。JWT是一个包含有关用户或实体身份信息的安全令牌,它由三部分组成:头部(Header)、载荷(Payload)和签名(Sig…

Linux上进行Nacos安装

Nacos安装指南 仅供参考,若有错误,欢迎批评指正! 后期会继续上传docker安装nacos的过程! 1.Windows安装 开发阶段采用单机安装即可。 1.1.下载安装包 在Nacos的GitHub页面,提供有下载链接,可以下载编译好…

PyTorch张量:内存布局

你可能对 torch 上的某些函数感到困惑,它们执行相同的操作但名称不同。 例如: reshape()、view()、permute()、transpose() 等。 这些函数的做法真的不同吗? 不! 但为了理解它,我们首先需要了解一下张量在 pytorch 中…

Http模块

Http模块 1.创建http服务 //导入http模块 const http require(http)//创建服务对象 const server http.createServer((request,response)>{response.end(Hello HTTP Server) })// 监听端口,启动服务 server.listen(9000,()>{console.log(服务已启动....);…

【Jeecg Boot 3 - 第二天】2.1、nginx 部署 JEECGBOOT VUE3

一、场景 二、实战 ▶ 2.1、打包(build 前端) > Stage 1:修改配置文件 .env.production(作用:指向后端接口地址) > Stage 2:点击build(作用&#xff1…

智能优化算法应用:基于蝙蝠算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于蝙蝠算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于蝙蝠算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.蝙蝠算法4.实验参数设定5.算法结果6.参考文献7.MA…

HeartBeat监控Redis状态

目录 一、概述 二、 安装部署 三、配置 四、启动服务 五、查看数据 一、概述 使用heartbeat可以实现在kibana界面对redis服务存活状态进行观察,如有必要,也可在服务宕机后立即向相关人员发送邮件通知 二、 安装部署 参照文章:HeartBeat监…

「差生文具多系列」推荐两个好看的 Redis 客户端

📢 声明: 🍄 大家好,我是风筝 🌍 作者主页:【古时的风筝CSDN主页】。 ⚠️ 本文目的为个人学习记录及知识分享。如果有什么不正确、不严谨的地方请及时指正,不胜感激。 直达博主:「…

前端 三种解决跨域问题 jsonp 、CORS、代理服务器 解决跨域全家桶

我的报错情况是 后端接口是3000 前端本地接口是8080,最后出现跨域 1.什么是跨域? 首先跨域是一种安全机制,是在开发上线前考虑到的安全问题并且需要采取合适的手段去避免这个问题带来的程序错误,接口跨域可以后端处理,也可以前端处理&#x…

Appium微信小程序自动化环境准备

一、前置说明 微信从8.0.19开始内核从x5换成xweb之后,原先的开启webview调试的原方案已经会报503错误。 点击下面的链接,都会报503错误: http://debugmm.qq.com/?forcex5ture http://debugx5.qq.com 微信内核升级为xweb之后,需要…

LeetCode力扣每日一题(Java):58、最后一个单词的长度

一、题目 二、解题思路 1、我的思路 先将字符串转换成字符数组 由于我们需要获取最后一个单词的长度,所以我们从后往前遍历字符数组 我们还需判断所遍历的字符是不是字母,即判断每个字符对应的ASCII值即可,用计数器count来储存单词长度 …

小型洗衣机哪个牌子质量好?迷你洗衣机排名前十名

随着内衣洗衣机的流行,很多小伙伴在纠结该不该入手一款内衣洗衣机,专门来洗一些贴身衣物,答案是非常有必要的,因为我们现在市面上的大型洗衣机只能做清洁,无法对我们的贴身衣物进行一个高强度的清洁,而小小…

Unity优化——加速物理引擎1

大家好,这里是七七,今天开始更新物理引擎相关的优化部分了,本文介绍的是物理引擎内部工作情况。 Unity技术有两种不同的物理引擎:用于3D物理的Nvidia的PhysX和用于2D物理的开源项目Box2D。然而,Unity对它们的实现是高…

和鲸科技携手深圳数据交易所,“数据+数据开发者生态”赋能人工智能产业发展

信息化时代,数据驱动决策的重要性日益凸显。通过利用数据可以深入了解市场需求、客户行为、竞争态势等关键信息,从而制定更为有效的战略和决策。围绕推动数据要素产业发展,近日,深圳数据交易所(以下简称“深数所”&…

MySQL InnoDB Replication部署方案与实践

1. 概述 MySQL Innodb ReplicaSet 是 MySQL 团队在 2020 年推出的一款产品,用来帮助用户快速部署和管理主从复制,在数据库层仍然使用的是主从复制技术。 ReplicaSet 主要包含三个组件:MySQL Router、MySQL Server 以及 MySQL Shell 高级客户…

在线课堂知识付费小程序源码系统 开发组合PHP+MySQL:用手机随时随地地学习,讲师亲自在线授业解惑 带安装部署教程

近年来,人们对于学习的需求也日益增加。传统的课堂教学已经无法满足人们的学习需求,而在线课堂则能够让人们随时随地地进行学习。同时,随着知识付费的兴起,越来越多的讲师也愿意将自己的知识和经验分享给更多的人。因此&#xff0…

温湿度传感器DHT11的简单应用

文章目录 一、DHT11是什么?二、使用步骤1.硬件1.硬件连接2.工作原理1.串行单总线2.温湿度数据采集原理 2.软件1.DHT11初始化如下(示例):2.DHT11复位如下(示例):3.等待DHT11的回应如下&#xff0…

@Transactional失效问题

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 关于Transactional 日…

酷开科技多维度赋能营销,实力斩获三项大奖

在数智化新阶段、广告新生态、传播新业态的背景下,“第30届中国国际广告节广告主盛典暨网易传媒态度营销峰会”于11月18日在厦门国际会展中心盛大举行。来自全国的品牌方、战略决策者、媒体平台和品牌服务机构等汇聚一堂。在50000+现场观众和数千万线上观…