数据结构笔记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

VFIO框架源码分析(二十二)- IOMMUFD 的脏页跟踪与 Dirty Bits 读取

在虚拟化热迁移(Live Migration)的场景中,脏页追踪(Dirty Page Tracking)是最具挑战性的环节之一。它的核心任务是实时捕获设备(DMA)对内存的写操作,以便 VMM(如 QEMU)知道哪些内存页需要被重新传输到目标主机。在强耦合与粗粒度:脏页追踪是绑定在 Container 上的。这意味着,如果一个 Container 内有多个设备,哪怕只有一个设备在写内存,脏页追踪也会影响 Container 内的所有设备。软件模拟开销大。

qq_36071928的博客 1044

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

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

为他种太阳的博客 275

CH32V IAP跳转避坑指南:为什么你的APP跳不过去?从mstatus寄存器配置到函数属性详解

本文深入解析CH32V系列MCU的IAP跳转机制,从mstatus寄存器配置到函数属性优化,详细讲解如何避免APP跳转失败。文章涵盖地址准备、模式切换、跳转执行等关键步骤,并提供调试技巧与实战案例,帮助开发者快速解决CH32V IAP跳转中的常见问题。

weixin_30955617的博客 139

反射机制——通过反射调用service中方法

需求:现在有一群service接口,有同一个方法名称,内部逻辑除了调用不同的调用自身的方法外其他基本都一致,那现在就需要一个独立的方法来勾勒出这个方法 1.SpringContextUtil package com.XXX.report.util; import org.apache.log4j.Logger; import org.springframework.beans.BeansE...

东天里的冬天 8521

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

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

ankleless的博客 1540

Springboot计算机毕业设计校园树洞微信小程序【附源码】开题+论文+mysql+程序+部署

因此,开发一款专门针对校园用户的树洞微信小程序,为学生提供一个安全、私密、便捷的倾诉和交流平台,具有重要的现实意义和应用价值。通过本研究的实施,我们预期能够开发出一款功能全面、操作便捷的校园树洞微信小程序,为校园师生提供一个安全、私密、便捷的倾诉和交流平台。此外,通过不断优化和改进小程序的功能和服务,我们预期能够提升用户体验和满意度,推动校园树洞小程序的持续发展,并为校园生活的和谐与健康发展做出积极贡献。同时,通过不断优化小程序的功能和服务,提升用户体验和满意度,推动校园树洞小程序的广泛应用和持续发展。

光冯毕设程序 1666

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

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

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

OKX 欧易 交易机器人开发基础

接口文档: https://www.okx.com/docs-v5/zh/#overview REST API 常用请求 查看账户余额 结果数据格式: 获取限价 结果格式: 获取指数行情 数据结构: 下单 结果数据: 获取未成交订单列表 返回结果: 撤单 结果结构:

Willin Wang 的全栈升级指南 2万+

ICC2如何写出floorplan信息

不用-exclude 的话rows_tracks / vias /blockages / routing_rules信息都会写出去,即便用了-include {macro ports}也不行,所以不介意这些东西的话可以用以下两种种def方式去写floorplan。write_floorplan用法和write_def一样,因为写出来的文件夹里就包含def,用write_floorplan的好处和innovus saveFPlan一样,都能写出voltage area和bound信息。

m0_61544122的博客 1071

java数据结构学习笔记01

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

Moon.XI的博客 887

【YOLOv8/v9/v10 实战 01】YOLOv8/v9/v10全系列实战对决:性能矩阵、架构拆解与2026部署指南

2026年YOLO生态已进入“战国时代”,Ultralytics YOLOv8/11/26、阿里YOLO12、清华YOLOv10、微软YOLOv9四大路线并行发展。本文基于官方文档、学术论文及实测数据,系统剖析三大核心版本(YOLOv8/v9/v10)的架构演进逻辑,构建覆盖参数量、mAP、FPS、FLOPs的完整性能矩阵。通过8组工业场景实测、全流程代码实现(训练-导出-部署)、6类硬件适配方案,解决新手选型难、进阶者优化无门、工业开发者部署低效的痛点。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 533

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

基于Java的OPC UA Server开发指南:从零开始构建高效服务器

本文介绍了如何使用开源项目org.eclipse.milo创建Java OPC UA Server。通过创建Spring Boot项目,添加Milo SDK依赖,定义Namespace类,服务器启动类以及监听器,详细阐述了建立OPC UA Server服务的步骤。启动后,服务器默认监听地址为opc.tcp://localhost:12685,可使用Softing OPC Client进行连接。

洛阳泰山的博客 3023

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【数据结构】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

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

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

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

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

InnerPeaceHQ的博客 4321

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

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、付费专栏及课程。

余额充值