简单介绍数据结构的基本概念

数据结构的基本概念

常用术语

数据

数据(Data)是客观事物的符号表示,是所有能输入到计算机中并被计算机程序处理的符号的总称。例如:整数、字符串、图形、图像、声音和动画等

数据元素

数据元素(Data Element)是数据的基本单位,有时也可被称为元素、记录等。

在计算机中通常作为一个整体进行考虑和处理,数据元素用于完整地描述一个对象,如学生信息表中的一名学生记录

数据项

数据项(Data Item)是组成数据元素的、有独立含义的、不可分割的最小单位。例如,课程表中的课程号、课程名等

数据对象

数据对象(Data Object)是性质相同的数据元素的集合,是数据的一个子集。例如:整数数据对象是集合N={0,±1,±2,…}

数据结构

数据结构(Data Structure)是相互之间存在一种或多种特定关系的数据元素的集合,也可以说数据结构是带“结构”的数据元素的集合,“结构”是指数据元素之间存在的关系

数据结构包括逻辑结构存储结构两个层次。

逻辑结构

数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。因此,数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。

数据的逻辑结构有两个要素:

  • 数据元素
  • 关系:关系是指数据元素间的逻辑关系

根据数据元素之间关系的不同特性,通常有四类基本结构,如图所示,其复杂程度依次递进

  • 集合结构:数据元素之间除了“属于同一集合”的关系外,别无其他关系。例如,确定一个员工是否为销售部员工,只需将销售部看作一个集合结构

    在这里插入图片描述

  • 线性结构:线性结构作为最常用的数据结构,其特点是数据元素只按先后次序连接,数据元素之间存在一对一的关系。例如,将学生的基本信息数据按照学号的先后顺序进行排列,将组成一个线性结构,如线性表、栈、队列和字符串等

    在这里插入图片描述

  • 非线性结构:非线性结构,数学用语,其逻辑特征是一个数据元素可能有多个直接前驱和多个直接后续。其中对于这种数据结构中的任意一个数据元素;与它相邻且在它之前的数据元素称为该数据元素的直接前驱;对于该结构中任意一个数据元素,与它相邻且在它之后的数据元素称为该数据元素的直接后续。非线性结构可分为树结构和图结构

    • 树结构:树结构的数据元素是分层次的纵向连接,数据元素之间存在一对多的关系。例如,经理管理多个组长,每位组长管理多个员工,这就构成树结构

      在这里插入图片描述

    • 图结构或网状结构:图结构或网状结构的数据元素的有各种各样的复杂连接,数据之间存在多对多的关系。例如,一门课程同时有若干个学生选修,一个学生可以同时选修多门课程,从而构成图结构或网状结构

      在这里插入图片描述

存储结构

数据对象在计算机中的存储表示称为数据的存储结构,也称为物理结构.

数据元素在计算机中有两种基本的存储结构

  • 顺序存储结构:顺序存储结构是借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系,通常借助程序设计语言的数组类型来描述
  • 链式存储结构:为了表示结点之间的关系,需要给每个结点附加指针字段,用于存放后续元素的存储地址。所以链式存储结构通常借助于程序设计语言的指针类型

顺序存储结构要求所有的元素依次存放在一片连续的存储空间中。链式存储结构无须占用一整块存储空间

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Shiro反弹shell和权限绕过含工具包

★★免责声明★★ 文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与学习之用,读者将信息做其他用途,由Ta承担全部法律及连带责任,文章作者不承担任何法律及连带责任。 1、前言 反序列化漏洞原理和Shiro反序列化漏洞原理请参…

安装 Windows 7

1.镜像安装 镜像安装:安装Windows 7 2.安装过程(直接以图的形式呈现) 等待安装成功即可

Linux——网络通信TCP通信常用的接口和tcp服务demo

文章目录 TCP通信所需要的套接字socket()bind()listen()acceptconnect() 封装TCP socket TCP通信所需要的套接字 socket() socket()函数主要作用是返回一个描述符,他的作用就是打开一个网络通讯端口,返回的这个描述符其实就可以理解为一个文件描述符&a…

防御-day5-防火墙综合实验

一、实验拓扑 二、实验要求 1、办公区设备可以通过电信链路和移动链路上网(多对多的NAT、并且需要保留一个公网IP不能用来转换)。 2、分公司的设备可以通过总公司的移动链路和电信链路访问到DMZ区的http服务器 3、分公司内部的客户端可以通过公网地址访问到内部的服务器。 三、…

0206-1-网络层

第 4 章 网络层 网络层提供的两种服务 虚电路服务 数据报服务 概要: 虚电路服务与数据报服务的对比 网际协议 IP 网际协议 IP 是 TCP/IP 体系中两个最主要的协议之一。与 IP 协议配套使用的还有四个协议: 地址解析协议 ARP (Address Resolution Protocol)逆地…

数据结构——lesson3单链表介绍及实现

目录 1.什么是链表? 2.链表的分类 (1)无头单向非循环链表: (2)带头双向循环链表: 3.单链表的实现 (1)单链表的定义 (2)动态创建节点 &#…

林浩然与杨凌芸的Java List大冒险

林浩然与杨凌芸的Java List大冒险 Lin Haoran and Yang Lingyun’s Java List Adventure 在一个阳光明媚的日子,程序员界的“侠客”林浩然和他那聪明伶俐的同事兼好友杨凌芸正在Java王国里进行一场别开生面的大冒险。这次他们的目标是征服两个强大的List家族成员——…

全网最详细的从0到1的turbo pnpm monorepo的前端工程化项目[搭建篇]

全网最详细的从0到1的turbo pnpm monorepo的前端工程化项目[搭建篇] 引言相关环境技术栈初始化工程安装turbo配置pnpm-workspace安装husky安装lint-staged安装eslint安装prettier配置 .editorconfig配置 .gitignore初步项目结构结语 引言 最近各种原因,生活上的&am…

【机构vip教程】Unittest(1):unittest单元测试框架简介

unittest单元测试框架简介 unittest是python内置的单元测试框架,具备编写用例、组 织用例、执行用例、功能,可以结合selenium进行UI自动化测 试,也可以结合appium、requests等模块做其它自动化测试 官方文档:https://docs.pytho…

微信社区小程序源码/h5/圈子论坛贴吧交友/博客/社交/陌生人社交/宠物/话题/私域/同城引流微信小程序源码

H5多端圈子社区论坛系统小程序源码,交友/博客/社交/陌生人社交,即时聊天,私域话题,社区论坛圈子,信息引流小程序源码,广场/微校园/微小区/微同城/圈子论坛社区系统,含完整的后台系统。thinkPHPu…

SSH密钥认证登陆流程(Vscode连接到远程)

目录 前言连接远程步骤1. 下载工具包wsCli到本地机器2. 本地机器上生成ssh密钥3. 在服务器上安装公钥4. vscode连接到远程 参考资料 前言 SSH(Secure Shell)是一种用于远程登录和安全传输数据的网络协议。它提供了两种主要的远程连接方式: 密…

原创详解OpenAI Sora是什么?技术先进在哪里?能够带来什么影响?附中英文技术文档

一:Sora是什么 Sora是一个文本到视频的模型,由美国的人工智能研究机构OpenAI开发。Sora可以根据描述性的文本提示,生成高质量的视频,也可以根据已有的视频,向前或向后延伸,生成更长的视频。 Sora的主要功…