“第四十五天” 数据结构基本概念

news2024/11/6 23:36:08

     

  目前看的有关数据结构的课,估计这周就看完了,但感觉差很多,还是和c一样,这样过一下吧。但可能比较急,目前是打算争取寒假回家之前把四大件都先大致过一遍。

数据结构里面有很多新的定义和概念,学到现在,数据结构给我的感觉更像是,将生活中一些常用的模型抽象出来,然后用编程语言加以描述和实现对其处理,学习的也就是这个。一些感觉我已经知道的概念就不写了。

        

        数据结构是相互之间存在一种或多种特定关系的数据元素的集合。数据元素之间的关系就是结构。通常有四种基本结构:1、集合 ,2、线性结构,3、树形结构 ,4、图状结构或网状结构。

线性结构可以联想一下我们日常生活中的排队之类的,树形结构就是一对多那种,比如我们下棋,对于当前一步后面可以出现多种下法,图或者网就是多对多了,比如我们的路。

        对于结构定义中的“ 关系 ”实际上描述的是数据结构之间的逻辑结构,这个我云里雾里的,感觉大致应该是数据之间是通过何种方式产生关联的,然后数据结构在计算机中的表示(映像)称为数据的物理结构,也叫存储结构

数据:能够输入计算机且被计算机处理的各种符号的集合,比如我们这么多学生的信息啊之类的

数据元素:是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。也称为元素,记录或者结点,顶点。和上面比的话就是我们每一个学生的信息就是一个数据元素。                   

数据项  : 构成数据元素的不可分割的最小单位,我们每个的信息也可以在划分一下,比如学号,姓名,性别之类的,这些都是构成我们信息的数据项。

数据对象:性质相同的数据元素的集合。注意是数据元素,不是数据项。

数据元素之间的关系在计算机中有两种不同的表示方法:顺序映像和非顺序映像  ,对应的存储结构分别是顺序存储结构和链式存储结构 ,数组就是一种顺序存储结构,数据之间彼此是相互靠近的,而链式存储结构,数据和数据并不一定是靠近的,而且感觉基本是不可能靠近的,所以对于链式存储,要想实现数据的关联,就需要存储对于关联数据的地址以达到访问或者操作的目的。

抽象数据类型 :一个数学模型以及定义在该模型上的一组操作。

抽象数据类型里面有三个东西,分别是 数据对象 ,数据关系 ,基本操作。

ADT  抽象数据类名
{
    数据对象:(数据对象的定义)
    数据关系:(数据关系的定义)
    基本操作:(基本操作的定义)
}

算法是对特定问题求解步骤的一种描述,它是指令的有限序列,有五个重要特性:

1、有穷性,在进行有限操作之后可以结束,且每一步都可以在有穷时间内完成;

2、确定性:算法中的每一条指令必须有确切的含义,有唯一的执行路径;

3、可行性:算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现的;

4、输入:有零或多个输入,取自某个特定的对象的集合。

5、输出:有一个或多个输出,输出和输入有着某些特定的关系;

然后还有关于时间复杂度和空间复杂度的概念分别用来描述算法基本操作重复执行的次数和算法所需存储空间的度量,也就是看看这个算法算的快不快以及占地方大不大,毕竟人的时间有限,电脑空间有限,是用来衡量一个算法是否优秀的。

新东西,布尔值的变量并不算赋值好像,更像是根据所得值进行判断,然后给自身一个值,非零值视为真,给自身赋值为1 ,零值视为假,给自己赋值 0 .

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

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

相关文章

054协同过滤算法的电影推荐系统

大家好✌!我是CZ淡陌。一名专注以理论为基础实战为主的技术博主,将再这里为大家分享优质的实战项目,本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路…

vue el-dialog弹出框自定义指令实现拖拽改变位置-宽度-高度

前言 在实际开发中我们经常使用el-dialog弹出框做表单,一般情况都是居中。遮挡到了一部分数据 当我们想要查看弹出框下面的数据时,就只能先把弹出框关闭,查看完数据之后在打开弹框 我们通过动态样式,和鼠标事件就可以实现。但自…

OpenLDAP LDIF详解

手把手一步步搭建LDAP服务器并加域 有必要理解的概念LDAPWindows Active Directory 服务器配置安装 OpenLDAP自定义安装修改对象(用户和分组等)修改olcSuffix 和 olcRootDN 属性增加olcRootPW 属性修改olcAccess属性验证新属性值 添加对象(用…

Neo4j入门教程2(看不懂评论区随便骂)

1. ORDER BY create (s4:student{age:21,num:98}),(s5:student{age:22,num:86}),(s6:student{age:23,num:99})承接上文,创建三个学生节点,标签为student1、student2、student3,分别拥有age属性和num属性 match(s:student) return s查看我们…

驱动day2:LED灯实现三盏灯的亮灭

head.h #ifndef __HEAD_H__ #define __HEAD_H__ #define PHY_PE_MODER 0x50006000 #define PHY_PF_MODER 0x50007000 #define PHY_PE_ODR 0x50006014 #define PHY_PF_ODR 0x50007014 #define PHY_RCC 0x50000A28#endif 应用程序 #include <stdio.h> #include <sys/…

【C语言必知必会 | 第二篇】编译器的安装与使用

引言 C语言是一门面向过程的、抽象化的通用程序设计语言&#xff0c;广泛应用于底层开发。它在编程语言中具有举足轻重的地位。 此文为【C语言必知必会】系列第二篇&#xff0c;介绍C语言编译器的安装与使用&#xff0c;为之后的学习安装环境基础 文章目录 1️⃣ Dev-C的安装与…

【2024秋招】用友项目管理部门java后端二面2023.9.12

1 rpc框架 1.1 深入讲讲你做的这个rpc框架 答&#xff1a; 1.2 你这个注册中心有实现相关的监控吗 1.2.1 如何实现注册中心有实现相关的监控 是的&#xff0c;我可以为你提供关于RPC注册中心及其监控的相关信息。RPC注册中心是用于管理微服务之间调用关系的中心化服务&…

数学建模入门

一 数学建模简介 数学建模创办于1992年&#xff0c;每年一届&#xff0c;是首批列入“高校学科竞赛排行榜”的19项竞赛之一。2022年&#xff0c;来自全国及英国、马来西亚的1606所院校/校区、54257队(本科49424队、专科4833队)、超过16万人报名参赛。是目前奖项最具有含金量的…

基于材料生成优化的BP神经网络(分类应用) - 附代码

基于材料生成优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于材料生成优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.材料生成优化BP神经网络3.1 BP神经网络参数设置3.2 材料生成算法应用 4.测试结果…

Spring Boot + EasyUI 创建第一个项目(一)

创建一个Spring Boot和EasyUI相结合的项目。 一、构建一个Spring Boot项目 Spring Boot之创建一个Spring Boot项目&#xff08;一&#xff09;-CSDN博客 二、配置Thymeleaf Spring Boot Thymeleaf&#xff08;十一&#xff09;_thymeleaf 设置字体_人……杰的博客-CSDN博客…

轴承寿命相关细节的研究

数据集PHM2012 介绍一下IEEE PHM2012数据集_phm2012轴承数据集-CSDN博客 标签如何设置的? 剩余寿命预测的标签设置_rul 标签_兔子牙丫丫的博客-CSDN博客 参考自刘硕师兄的毕业答辩PPT 图 4.9 训练数据的切分方法 数据段的重叠切分&#xff0c;不仅可以覆盖更多的标签数据…

分布式锁之环境准备

文章目录 分布式锁1. 传统锁回顾1.1. 从减库存聊起1.2. 环境准备 分布式锁 在应用开发中&#xff0c;特别是web工程开发&#xff0c;通常都是并发编程&#xff0c;不是多进程就是多线程。这种场景下极易出现线程并发性安全问题&#xff0c;此时不得不使用锁来解决问题。在多线…

YZ系列工具:YZ11:VBA_窗体缩放

我给VBA下的定义&#xff1a;VBA是个人小型自动化处理的有效工具。利用好了&#xff0c;可以大大提高自己的工作效率&#xff0c;而且可以提高数据的准确度。我的教程一共九套一部VBA手册&#xff0c;教程分为初级、中级、高级三大部分。是对VBA的系统讲解&#xff0c;从简单的…

京东敏捷实践指南

ISBN: 978-7-121-38257-4 编著&#xff1a;赵卫、王立杰 页数&#xff1a;211页 阅读时间&#xff1a;2023-09-02 推荐指数&#xff1a;★★★★★ 本文主要讲解的是敏捷开发&#xff0c;介绍了敏捷转型的必要性和收益。 介绍的方法有&#xff1a;Scrum、Kanban&#xff08;看板…

Android自行车在线租借租赁系统+全套手把手视频教程

【项目功能介绍】 功能列表: 本系统包含后台管理和前端app双端系统, 本系统包含三个角色: 管理员,员工,app用户。 后台管理员的功能包含: 登录, 退出, 自新车管理,添加自新车,修改自新车,禁用启用自新车; 自新车车辆管理,添加自新车车辆,修改自新车车辆,启用禁用自新车车辆; …

JVM——JVM概述以及双亲委派机制

JVM探究 请你谈谈你对JVM的理解&#xff1f;Java8虚拟机和之前的有什么变化更新&#xff1f;什么是OOM&#xff0c;什么是栈溢出StackOverFlowError&#xff1f;怎么分析&#xff1f;JVM的常用调优参数有哪些&#xff1f;内存快照如何抓取&#xff1f;怎么分析Dump文件&#x…

STM32F40X之时钟树

一、时钟树概述 目前用到的STM32的许多片上外设都需要先打开相应的时钟&#xff0c;告诉当前这个器件是以什么频率在运行&#xff0c;而每个片上外设的时钟频率其实在出厂时已经固化。 二、时钟树框架 25M / 25 * 336 / 2 168M 系统时钟计算公式&#xff1a;SYSCLKPLLCLK H…

从入门到进阶 之 ElasticSearch 配置优化篇

&#x1f339; 以上分享从入门到进阶 之 ElasticSearch 配置优化篇&#xff0c;如有问题请指教写。&#x1f339;&#x1f339; 如你对技术也感兴趣&#xff0c;欢迎交流。&#x1f339;&#x1f339;&#x1f339; 如有需要&#xff0c;请&#x1f44d;点赞&#x1f496;收藏…

【JavaEE】_Servlet API

目录 1. HttpServlet 1.1 init方法 1.2 destroy方法 1.3 service方法 1.4 Servlet的生命周期 1.5 代码示例 1.5.1 使用postman构造请求 1.5.2 使用ajax构造请求 2. HttpServletRequest 2.1 核心方法 2.2 代码示例1&#xff1a;打印请求信息 3. 前端给后端传参 3.1…

新手如何用Airtest实现在图片范围内随机点击?

1. 前言 前几天有个新手同学在Airtest官群里问了这样一个问题&#xff1a; 我是新手&#xff0c;在图片范围内随机点击 &#xff0c;用Airtest怎么实现&#xff1f;代码&#xff1f; 那我们就以这个问题为例&#xff0c;浅浅聊一下&#xff0c;怎么把需求转化成我们的Airtest代…