第一章 数据结构绪论

news2024/9/27 15:21:09
  • 数据结构:是相互之间存在一种或多种特定关系的数据元素的集合
  • 数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间关系和操作等相关问题的学科。
  • 程序设计=数据结构+算法
  • 数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合
  • 数据元素:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理、也被称为记录
  • 数据项:一个数据元素可以由若干个数据项组成。数据项是数据不可分割的最小单位
  • 数据对象:是性质相同的数据元素的集合,是数据的子集。在实际应用中,处理的数据元素通常具有相同性质,在不产生混淆的情况下,我们都将数据对象简称为数据。
  • 结构:不同数据元素之间不是独立的,而是存在特定的关系,这些关系就被称为结构。
  • 数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。

1、数据结构

1)逻辑结构:是指数据元素之间的相互关系。

  • 集合结构:集合结构中的数据元素除了同属于一个集合外,他们之间没有其他关系。

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

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

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

2)物理结构:是指数据的逻辑结构在计算机中的存储形式。

  • 顺序存储结构:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。

  • 链式存储结构: 是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。

 逻辑结构是面向问题的,而物理结构就是面向计算机的,其基本目标就是将数据及其逻辑关系存储到计算机的内存中。

2、抽象数据类型

1)数据类型:是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。

  • 原子类型:是不可以再分解的基本类型,包括整型、实型、字符型等。
  • 结构类型:由若干个类型组合而成,是可以再分解的。例如,整型数组是由若干整型数据组成的。
  • 抽象:是指抽取出事物具有的普遍的本质。

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

  • “抽象”的意义在于数据类型的数学抽象特性。
  • 抽象数据类型体现了程序设计中问题分解、抽象和信息隐藏的特性。
  • 抽象数据类型的标准格式:

 3、总结

数据结构是相互之间存在一种或多种特定关系的数据元素的集合。

 具体分类如上。

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

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

相关文章

2.2、进程的状态与转换

整体框架 1、三种基本状态 进程是程序的一次执行。在这个执行过程中,有时进程正在被 CPU 处理,有时又需要等待 CPU 服务, 可见进程的状态是会有各种变化。 为了方便对各个进程的管理,操作系统需要将进程合理地划分为几种状态 ①…

随机梯度下降法的数学基础

梯度是微积分中的基本概念,也是机器学习解优化问题经常使用的数学工具(梯度下降算法)。因此,有必要从头理解梯度的来源和意义。本文从导数开始讲起,讲述了导数、偏导数、方向导数和梯度的定义、意义和数学公式&#xf…

SpringBoot-自动配置-切换内置web服务器

SpringBoot-自动配置-切换内置web服务器 介绍 SpringBoot的web环境中默认使用tomcat作为内置服务器其实SpringBoot提供了4种内置服务器供我们选择分别为:Jetty,Netty,Tomcat,Undertow我们可以很方便的进行切换 实例演示 在pom文件…

简单了解操作系统、进程内存管理

目录 前言: 一、操作系统: 操作系统的定位: 应用程序: 系统调用: 操作系统内核: 驱动程序: 硬件设备: 二、进程: 什么是进程? 进程的描述与组…

自定义类型,结构体、枚举、联合(C语言)

目录 结构体 结构体的基础知识: 结构体的声明: 特殊声明: 结构体的自引用 结构体变量的定义和初始化 结构体内存对齐: 修改默认对齐数: 结构体传参 结构体的柔型数组 柔型数组的书写 柔性数组的特点 柔性数组的使用 柔…

【Java寒假打卡】JavaWeb-Tomcat

【Java寒假打卡】JavaWeb-Tomcat服务器Tomcat下载和安装Tomcat的目录结构基本使用控制台乱码的问题IDEA集成TomcatJavaWeb项目的目录结构Tomcat-idea发布项目Tomcat-WAR包发布项目Tomcat配置文件的介绍Tomcat配置虚拟目录Tomcat配置虚拟主机服务器 Tomcat下载和安装 将下载好的…

干货 | 数据安全和个人信息保护审计的方法研究

以下内容整理自清华大学《数智安全与标准化》课程大作业期末报告同学的汇报内容。第一部分:概述我们的研究核心是个人信息保护合规审计,具体指个人信息处理活动是否遵守我国相关法律法规的监督性审计。在个保法出台后,我国形成了以内部审计为…

我用ChatGPT写神经网络:一字不改,结果竟很好用

自从去年底推出以来,对话式 AI 模型 ChatGPT 火遍了整个社区。 ChatGPT 的确是一个了不起的工具,就像一个「潘多拉魔盒」。一旦找到正确的打开方式,你或许会发现,自己再也离不开它了。 作为一个全能选手,人们给 Chat…

Fedora 38发布Budgie与Sway定制版

导读两款新的 Fedora 定制版将在 Fedora 38 发布时首次亮相。我们期待着它们在 Fedora 37 时出现,但在 Fedora 38 中终于来了! 早在 2022 年 5 月,Budgie 项目的主要开发者 Joshua Strobl ​​宣布​​,Budgie 已被提交到 Fedora…

第五届字节跳动青训营 前端进阶学习笔记(四)TypeScript入门

文章目录前言TypeScript概要1.什么是TypeScript2.TypeScript基本语法基础数据类型对象类型函数类型函数重载数组类型补充类型泛型约束和泛型默认参数类型别名和类型断言高级类型1.联合类型2.交叉类型3.类型守卫类型谓词总结前言 课程重点: TypeScript概要TypeScri…

Kubernets核心介绍及实战

1、资源创建方式 命令行YAML 2、Namespace 名称空间用来隔离资源 “namespace"通常被翻译为「命名空间」,听起来好像比较抽象,其实重点是在这个"space”。它和描述进程的虚拟地址空间的address space一样,都是提供一种独占的视角…

linux引导和启动程序

1.BIOS/Bootloader: 一上电,硬件强制让cpu的cs:ip寄存器指向bios程序的位置,从bios程序开始执行,由pc机的BIOS (0xFFFFO是BIOs存储的总线地址)把bootsect从某个固定的地址拿到了内存中的某个固定地址(0x90…

SpringAMQP快速入门

介绍Spring AMQP 项目将核心 Spring 概念应用于基于 AMQP 的消息传递解决方案的开发它提供了一个“模板”作为发送和接收消息的高级抽象它还通过“侦听器容器”为消息驱动的 POJO 提供支持这些库促进了 AMQP 资源的管理,同时促进了依赖注入和声明性配置的使用包含两…

纷享销客华为云CXO思享会华东系列活动成功举办!

3天,3座城市,5家标杆企业,11位不同领域的专家,超百位企业家云集。1月10日-13日,纷享销客与华为云联合举办的“数字创新 高效增长”CXO思享会华东系列活动成功举办。全国各地超百名企业家齐聚华东参与本次思享会&#x…

kubeasz安装kubernetes1.25.5

kubeasz安装k8s 1 配置 kubeasz安装kubernetes,只需要做好网通配置,做好ssh免密通信配置即可 1.1 环境介绍 OS:CentOS Linux release 8.5.2111 机器: IPhostname10.104.10.201k8s-master10.104.10.202k8s-node 所有机器,都将…

3-4存储系统-虚拟存储器(CO)

文章目录一.页式存储1.页式存储系统2.逻辑地址到物理地址的转换3.页表4.快表TLB二.虚拟存储器(一)页式虚拟存储器(二)段式虚拟存储器(三)段页式虚拟存储器一.页式存储 1.页式存储系统 为提高主存的空间利…

JS中的splice方法添加或删除数组中的元素

splice方法嘚吧嘚语法下标问题实战splice(index)splice(index,howmany)示例一(howmany>0)示例二(howmany ≤ 0)splice(index,howmany,item1,.....,itemX)howmany ≤ 0示例一(index ≥ 0)示例二(index<0)howmany>0示例一(index ≥ 0)示例二(in…

Spring Cloud Kubernetes 本地开发

简介 Spring Cloud Kubernetes 是spring官方集成Kubernetes的一个框架.可以直接将springboot项目使用Kubernetes做为注册中心.很方便,但是我们本地开发的时候很难进行调试,因为我们本地没有Kubernetes环境. 下面介绍一种能够本地开发的方式 KT-Connect KtConnect(Kt…

【倍增+最短路】P1613 跑路

不知道是因为这样的套路太典了还是因为什么,这难度只有绿题,可是我感觉好难想到QwQ不过今天写了好几道倍增,好像有点感觉了捏P1613 跑路 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)题意:思路:一开始的思路就是建图…

【内存函数】-关于内存的操作函数

作者:小树苗渴望变成参天大树 作者宣言:认真写好每一篇博客 作者gitee:gitee 如 果 你 喜 欢 作 者 的 文 章 ,就 给 作 者 点 点 关 注 吧! 内存函数前言一、[memcpy](https://cplusplus.com/reference/cstring/memc…