数据结构笔记01 一些基本概念

【数据结构笔记01】什么是数据结构 关于数据组织、关于空间的使用、关于算法效率、抽象数据类型。 阅读详情

在大二的时候,学校开设了这门课程,那时候觉得这门课程很厉害,但是在当时,并没有好好学习,只是觉得很有趣,那时候的学习,对自己的要求也仅仅只是为了期末考试能够过关,但这个课程名字我是记在心里了,想着总要找个时间来学习他,恰好,这次寒假有了点时间,加之自己准备考研,所以就着手开始了。

说在前面的话

关于内容:只更到树的创建;后面的内容真的是难度有点大,学习时间有限,以后有机会再继续更!
学习资料:程杰老师的《大话数据结构》;
代码语言:C语言;
博文形式:大都是自己参照《大话数据结构》编写的可运行的代码;
更的顺序:也是按照《大话数据结构》这本书的编写顺序;

写的这些主要为了自己以后复习用,大家看了如果觉得有用,请点个赞,非常感谢,如果有问题,也欢迎直接评论指出,谢谢大家!  

废话不多说,下面就开始上主菜!


一些基本概念

第一组:数据、数据对象、数据元素、数据项、数据结构

a. 【数据】:描述客观事物的符号,是计算机可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合;1. 可输入到计算机中,2. 能被计算机程序处理;
b. 【数据对象】:是性质相同的数据元素集合,是数据的子集;
c. 【数据元素】:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理,也叫记录;
d. 【数据项】:一个数据元素可以由若干个数据项组成;数据项是数据不可分割的最小的单位;
e. 【数据结构】:不同元素之间不是独立的,而是存在特定的关系我们将这种关系称为结构;数据结构就是互相之间存在一种或多种特定关系的数据元素的集合;
以上是摘抄《大话数据结构》书本的;接下来按照我的理解通过两个例子来区分这些概念;
1。以一张存在数据库的学生信息表为例:
这里写图片描述
数据:就是整张表格的所有数据;从另一层面来讲,数据可单指红色方框的所有数据;
数据对象:所有红色方框的数据组成的学生对象;
数据元素:每一个蓝色方框都是一个数据元素;
数据项:每个绿色方框所对应数据元素的数据,都是数据项;

2。以定义的变量为例:
这里写图片描述
上图左边部分是这些名词的结构,从右边定义的一些变量来区分这些名词:
int a; int b; 就是一些【数据】;
左边下方定义了一个简单的老师结构体

sturct Teacher
{
    int age;
    char name[64];
}

结构体中的年龄和姓名就是【数据项】;
然后在上面红色方框定义了一个老师的结构体数组,数组长度为10;这个结构体数组就可以叫【数据对象】;
然后下面的红色方框中写出来的和没有写出来的数组元素就是【数据元素】;

第二组:逻辑结构、物理结构

a. 逻辑结构:指【数据对象】中【数据元素】之间的相互关系;可分为以下四种:
1。集合结构
2。线性结构(1:1)
3。树形结构(1:N)
4。图形结构(M:N)
b. 物理结构:指数据的逻辑结构在计算机中的存储形式;常见的有四种:
1。顺序存储结构:把数据元素存放在 地址连续 存储单元里,数据简的逻辑关系和物理关系是一致的;例如上面定义的struct Teacher[10] ;此种结构又叫随机存储结构;
2。链式存储结构:把数据元素存放在 任意的 的存储单元里,这组存储党员可以是连续的,也可以是不连续的,因此在每个【数据元素】中都会有一个指针域;这些数据元素就通过指针关联起来;
3。索引;
4。散列;
由1、2两点,就有后面要学的 线性表、栈和队列的两种存储存储结构:顺序存储结构和链式存储结构;

第三组:数据类型、抽象数据类型

a. 数据类型:指一组性质相同的值的集合及定义在此集合上的一些操作的总称;在C语言中按照取值不同,分为两类:
1。原子类型:是不可再分解的基本类型,如 char int float double 等等;
2。结构体类型:由若干个类型组合而成,是可再分解的,如int array[10] 和定义一个结构体等;
指一组性质相同的值的集合及定义在此集合上的一些操作的总称在平常的写代码过程中 ;我对这句话的理解是:在平常的写代码过程中,我们定义两个整型变量;如int a = 10, b = 20; a,b属于整型变量这个集合,然后对变量 a 和 b 进行 + - * / 等一些操作;
b. 抽象数据类型
抽象是指抽取出事物具有的普遍性的本质;
抽象数据类型(Abstract Data Type, ADT):是指一个数学模型及定义在该模型上的一组操作;
对【抽象数据类型】我的理解就是:一个数学模型,在这模型上的操作;如《大话数据结构》中说的马里奥例子,马里奥就是这个模型,然后给这个模型定义一些操作:前进,后退,上跳,打子弹;以及后面要学的 线性表,栈和队列等等,这些都是一个个数学模型,然后在这个模型上定义一些操作,拿线性表来说,一些操作如下:初始化线性表,线性表判空,将线性表清空,获得线性表某个位置的元素值,在线性表某个位置插入、删除一个元素结点,获得线性表长度等等;
描述抽象数据类型的标准格式

ADT 抽象数据类型名
Data
    数据元素之间逻辑关系的定义
Operation
    操作1
        初始条件
        操作结果描述
    操作2
        ......
    操作n
        ......
endADT

大家看了如果觉得有用,请点个赞,非常感谢,如果有问题,也欢迎直接评论指出,谢谢大家!

【Python数据结构与算法笔记day01】数据结构与算法(Python) 文章目录数据结构与算法(Python)Why? 数据结构与算法(Python) Python数据结构与算法 1. 引入概念 1.1. 第一次尝试 1.2. 算法的提出 1.3. 第二次尝试 1.4. 算法效率衡量 1.5. 算法分析 1.6. 常见时间复杂度 1.7. Python内置类型性能分析 1.8. 数据结构 2. 顺序表 2.1. 顺序表的形式 2.2. 顺序表的结构与实现 2.3. ... 阅读详情

相关推荐

《数据结构与算法之美》专栏学习笔记_01

写笔记先找找好用的思维导图工具;数据结构与算法鸟瞰图;20个最常用、最基础的数据结构与算法

weixin_53274286的博客 741

数据结构:【学习笔记】01 基本概念

1 数据结构 1.1 查询方法 实例:二分法查询。 1.1.1 二分法定义 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。 1.1.2 查找过程 首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,...

weixin_45424913的博客 321

[特殊字符]交通标志检测与分类数据集-智能驾驶系统 地图数据更新 1,886张图片

🚦交通标志检测与分类数据集-智能驾驶系统 地图数据更新 1,886张图片

cver123的博客 2075

学习笔记(01):数据结构基础系列(6):树和二叉树-树的基本概念

数据结构课程是计算机类专业的专业基础课程,在IT人才培养中,起着重要的作用。课程按照大学计算机类专业课程大纲的要求,安排教学内容,满足需要系统学习数据结构的人。系列课程包含11个部分,本课为第6部分“树和二叉树”,介绍树的相关概念和表示方法,重点是二叉事的性质、存储结构、遍历等基本操作的实现,以及应用基本操作解决问题的方法。...

为他种太阳的博客 275

扩增子测序|iCAMP包——基于系统发育零模型分析确定性和随机性在群落构建过程R中实践

iCAMP的核心功能是通过系统发育分箱的零模型分析,量化不同生态过程的相对重要性。,用于评估不同生态过程(同质选择、异质选择、扩散和漂变)对整个群落及各个系统发育分箱(bin)的相对重要性。该方法也成为nature,science系列文章的常客,深受大家喜欢,在文章中运用该方法将为论文增色不少。外环和内环的圆环图显示了每个门(或变形菌门的分类)中不同过程的相对重要性。中央是系统发育树,内环展示了不同过程的相对重要性,表示每个系统发育箱中的DL。示例代码中提供了数据和代码,已经小编测试,可直接运行。

weixin_46814750的博客 6230

Cadence仿真数字电路功耗

Cadence仿真数字电路功耗 数字电路的功耗采用平均电流乘电源电压获得,所以本文的关键是测量平均电流。 仿真前设置好仿真参数后,在仿真的ADE街边选择:outputs➡to be saved➡select on design 选择电源的负端电流(若选择正端,则电流为负): 选择完成后,在ADE界面讲所选节点的plot也勾选上,点击run。仿真完成后自动显示波形。在波形上选中该电流曲线,右击选择:send to➡calculator 注意上图中,商店前的波形不稳定,需要进行截取。在calculator

qq_41519780的博客 1万+

数据结构(01)—— 数据结构的基本概念

数据结构是研究如何高效存储和处理信息的学科。它包含数据元素、数据项、数据对象等基本概念,以及数据类型(原子类型、结构类型和抽象数据类型)。数据结构包含三方面内容:逻辑结构(线性/非线性关系)、存储结构(顺序/链式/索引/散列)和数据的运算。逻辑结构关注数据间的关系,存储结构关注计算机中的实现方式,而运算则定义了对数据的操作。掌握这些基础概念有助于理解如何将现实问题信息化并在计算机中高效处理。

ankleless的博客 1540

大疆M3508电机使用CAN通信进行速度PID闭环控制详解

目录一. 简介二. 电机通信协议三. 电机PID控制原理四. 官方代码移植-中断接收五. 官方代码移植-查询接收 一. 简介 之前写过一篇文章STM32实现四驱小车(五)电机控制任务——电机速度PID控制算法,其中是以大疆的M3508电机为例进行讲解的(没错,就是RoboMaster机器人同款电机,不过Robomaster上的电机好像是小一号的M2006)。不少小伙伴私信问我要代码,我都回复说不是有官方demo么。后来问的人多了我大概明白了,看来官方的Demo还是有点门槛。可能是带FreeRTOS操作系统看

qq_30267617的博客 7万+

C++数据结构X篇_01_数据结构的基本概念

从本篇开始学习数据结构相关概念。

分享学习成长历程,Winter is coming! 647

华大HC32F460RS485通信实验

华大HC32F460RS485通信实验

ZhuoWuKeJi的博客 1798

脑影像分析工具JuSpace:跨模态关联的神经递质系统研究利器

JuSpace是一款专业的脑影像分析软件,专为跨模态关联研究设计。它能够将功能或结构磁共振影像与神经递质PET/SPECT图谱进行空间关联分析,帮助研究者探索宏观脑影像异常与微观神经化学系统(如多巴胺、血清素)之间的潜在联系,是神经精神疾病机制研究的强大工具。

c2d3e4f的博客 543

java数据结构学习笔记01

记录java版数据结构学习笔记。

Moon.XI的博客 887

python爬虫项目(一百九十八):电商平台用户行为数据分析与推荐系统、爬取电商平台用户行为数据

本文详细介绍了如何通过爬虫技术抓取电商平台的用户行为数据,并结合数据分析技术,构建一个简单的推荐系统。使用Selenium模拟用户操作抓取动态网页数据,并通过API接口直接获取用户行为数据,能够为后续的用户行为分析提供基础数据。我们结合了基于用户协同过滤、基于商品协同过滤和矩阵分解等方法,构建了不同的推荐系统。实际应用中,可以进一步优化推荐算法,利用更复杂的深度学习技术和更高效的数据处理方法,提升推荐的准确性和个性化程度。

斌擎科技 2361

01数据结构-01背包问题

当我们要在背包容量为2的情况下放入物品id1的时候,我们要么不放入1,此时最优结果F(0,2)是图中橙色区域对应部分,要么放入1,此时最优结果是放入1后1的价值加上背包容量减去1的重量的背包容量作为F()的参数,即F(0,0)图中绿色部分,明显0+10>6,所以此时我们填写的是10。如图,同理当背包容量为0的时候,1号和2号物品也放不进去,当背包容量为1的时候,此时我们可以有两种选择,一种是选择不放1,那么最优值是F(0,1),如果放入物品2,发现物品2重2放不进去,我们取最优解,肯定是F(0,1)。

2302_82136376的博客 1109

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

【数据结构】01 基本概念

数据结构基本概念——慕课笔记 代码来源:https://www.icourse163.org/course/ZJU-93001#/info 文章目录数据结构基本概念——慕课笔记1.1什么是数据结构1.1.1时钟打点的概念1.3应用实例:最大子列和问题1.3.1最大子列和问题 1.1什么是数据结构 1.1.1时钟打点的概念 常数CLK_TCK(或CLOCKS_PER_SEC):机器时钟每秒所...

分享个人收获,创建共享共赢社区 278

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

数据结构(陈越、何钦铭)学习笔记

本系列文章为浙江大学陈越、何钦铭数据结构学习笔记,系列文章链接如下: 文章目录 一、基本概念 二、线性结构 三、树 四、图 五、排序 六、散列查找 一、基本概念 数据结构基础:P1-基本概念 数据结构基础:P1-基本概念----编程作业01:最大子列和问题 数据结构基础:P1-基本概念----编程作业02:Maximum Subsequence Sum 数据结构基础:P1-基本概念----编程作业03:二分查找 二、线性结构 数据结构基础:P2.1-线性结构—>线性表 数据结构基础:P2.2-线性结构—

InnerPeaceHQ的博客 4320

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

01 Trie (基本概念、经典例题)

The XOR Largest Pair 01Trie的典型例题 两数字异或运算求最值: 思路: 将数字理解为一个长度为32的01串,异或运算求最值,应该贪心地从最高位到最低位取不同的数字。 步骤: 将所有数字插入Trie,然后遍历n个数字,对于每个数字从高位到低位, 依次匹配与它不同的数字(没有就匹配相同的)。 注意这样贪心是合理的,因为高位的数字影响大于低位数字影响总和。 譬如: 0x1000...

SongyangJi 2043

【王卓-数据结构】笔记01

有前驱和后继、数组找贡献最大的基本语句。

weixin_51947647的博客 1096

【数据结构】01Trie

01Trie是字典树的一种变种,其只有两种情况,即 0 和 1,实现方式其实和字典树是一样的。

qq_61422664的博客 1223

[01]数据结构概述笔记

时间复杂度概念清解

weixin_45528105的博客 807

01Tire 学习笔记

01Tire的学习笔记

qq_43387079的博客 768

笔记_408_数据结构_01.绪论

数据结构:第一章 绪论

m0_61749596的博客 880

数据结构笔记-0x01基础

文章目录写在最前面基本术语逻辑结构储存(物理)结构数据类型算法定义5个基本特性算法设计的要求时间复杂度推导空间复杂度 写在最前面 笔记全是用c语言写的 是在学习数据结构时为了方便复习而做的笔记,全程看的都是《大话数据结构》当入门了,如果有误还请各位大侠指出 是真的入门知识,要提高还是看《数据结构与算法分析》和《算法导论》之类的 基本术语 数据元素 数据项 数据对象 数据结构 逻辑结构 集合 线性 树 图 储存(物理)结构 顺序存储 链式存储 数据类型 原子类型 结构类型 抽象数据类型

qq_31910239的博客 447

【数据结构篇01】预备知识及简单介绍

说明: 该系列主要是对数据结构学习的一些笔记,心得一些进行记录,同时会实现一些认为有必要的数据结构及算法,有错误还希望指出,个人认为不论是刚学习还是复习的小伙伴都有参考的价值。 参考书: 数据结构与算法分析(C++版)-电子工业出版社,我不太清楚出到了第几版,越新越好吧,本人用的第三版,后简称书一。 数据结构高分笔记-天勤,每年都会新出,适合考研的同学,该系列也是以该书为主,后简称书二。 预备知识: 数学基础:集合和关系、排列组合、对数、级数、递归、常用数学术语(计量单位、数学符号[

一个自律的人会想方设法阻止自己的懒惰 372
上一篇: JS-函数的参数
下一篇: 数据结构笔记02 算法
StevenAC
博客等级 码龄10年 16粉丝 66原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值