首页 > 其他分享 >大话考研数据结构:第3篇 数据结构的基本概念(下)

大话考研数据结构:第3篇 数据结构的基本概念(下)

时间:2024-06-15 18:30:49浏览次数:12  
标签:存储 大话 元素 考研 数据结构 数据 节点 结构

1 数据结构

        数据结构(data structure)是指相互之间存在一种或多种特定关系的数据元素的集合。现实世界中,任何的数据元素并非孤立存在的,它们之间存在千丝万缕的某种关系,它们的这种称之为“结构”。简而言之,数据结构是相互之间存在一种或多种特定关系的数据元素的集合,即带“结构”的数据元素的集合。这种“结构”就是指数据元素之间存在的关系,包括以下几个方面:

  • 逻辑结构

  • 物理结构

  • 数据的运算

数据的逻辑结构和储存结构是数据结构的两个密切相关的方面,同一逻辑结构可以对应不同的存储结构。算法的设计取决于数据的逻辑结构,而算法的实现依赖于指定的存储结构。

2 数据逻辑结构

        数据逻辑结构是指反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系是指数据元素之间的前后间关系,而与它们在计算机中的实际存储位置(也就是物理结构)无关。通常情况下,数据逻辑结构分为两类:

  • 线性结构:数据结构中的元素存在一对一的相互关系。

  • 非线性结构:数据结构中的元素存在一对多或者多对多的相互关系。

其中,对于非线性结构而言

  • 集合表示数据结构中的元素之间除了“同属一个集合” 的相互关系外,别无其他关系。这种结构强调元素的整体性,而不关注元素之间的具体关系。

  • 树形结构表示数据结构中的元素存在一对多的相互关系。这种结构能够表示数据元素之间的层次和分支关系。

  • 图形结构表示数据结构中的元素存在多对多的相互关系。这种结构能够表示数据元素之间的任意连接关系,非常适合处理具有复杂关联的数据。

常见的数据结构的数据逻辑结构分类图如下所示:

3 数据存储结构

        存储结构,也称为物理结构,是指数据结构在计算机中的表示(又称映像),它包括了数据元素的机内表示和关系的机内表示。数据存储结构主要关注数据元素在计算机内存中的表示和存储方式。

常用的数据存储结构有以下几类:

  • 顺序存储结构:这种结构把逻辑上相邻的节点存储在物理位置上相邻的存储单元里,节点之间的逻辑关系由存储单元的邻接关系来体现。数组就是顺序存储结构的典型代表,其元素在内存中连续存储,查找效率高,但插入和删除操作效率较低。

  • 链式存储结构:链式存储结构不要求逻辑上相邻的节点在物理位置上也相邻,节点间的逻辑关系是由附加的指针字段表示的。链表是链式存储结构的典型应用,它动态申请或删除内存空间,对于元素的增删操作比较灵活。

  • 索引存储结构:这种结构在存储节点信息的同时,建立附加的索引表,以便快速定位到目标节点。

  • 散列(或哈希)存储结构:它根据节点的关键字通过哈希函数直接计算出一个值,并将这个值作为该节点的存储地址。这种结构的查找速度快,但由于只存储节点的数据,不存储节点之间的逻辑关系,因此不适用于需要频繁进行插入和删除操作的场景。

扩展知识:

        数据元素的机内表示(映像方法): 用二进制位(bit)的位串表示数据元素。通常称这种位串为节点(node)。当数据元素有若干个数据项组成时,位串中与各个数据项对应的子位串称为数据域(data field)。因此,节点是数据元素的机内表示(或机内映像)。

        关系的机内表示(映像方法):数据元素之间的关系的机内表示可以分为顺序映像和非顺序映像,常用两种存储结构:顺序存储结构和链式存储结构。顺序映像借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系。非顺序映像借助指示元素存储位置的指针(pointer)来表示数据元素之间的逻辑关系。

4 数据运算

        施加在数据上的运算包括运算的定义和实现。其中,运算的定义是针对逻辑结构的,它指出运算的功能;运算的实现是针对存储结构的,它指出运算的具体操作步骤。

标签:存储,大话,元素,考研,数据结构,数据,节点,结构
From: https://blog.csdn.net/weixin_44512347/article/details/139706301

相关文章

  • 【数据结构】遍历二叉树(递归思想)-->赋源码
    欢迎来到我的Blog,点击关注哦......
  • 【数据结构之B树的讲解】
    ......
  • 计算机组成原理:408考研|王道|学习笔记(持续更新~)
    系列目录目录系列目录第一章计算机系统概述1.1计算机的发展(不考)1.2计算机硬件的基本组成1.2.1计算机硬件组成1.2.2各个硬件的工作原理......
  • Python期末系统梳理(二):内置数据结构
    几种数据结构的比较列表:由一系列按特定顺序排列的元素组成,使用方括号[]表示,逗号分割其中的元素,==可修改元组:理解为不可修改的列表即可,使用圆括号()表示集合:无序且不重复的元素序列,使用大括号{}表示字典:一系列键值对,每个键和一个值关联,可使用键访问值,无序再梳理·列表有......
  • 数据结构:手撕代码——顺序表
     目录 1.线性表2.顺序表2.1顺序表的概念2.2动态顺序表实现 2.2-1动态顺序表实现思路2.2-2动态顺序表的初始化 2.2-3动态顺序表的插入检查空间 尾插头插 中间插入 2.2-4 动态顺序表的删除 尾删头删 中间删除 2.2.5动态顺序表查找与打印、销毁......
  • Java数据结构:从基础到高级应用
    Java是一种广泛应用的编程语言,拥有强大的数据结构库,使程序员能够轻松地处理各种数据和算法。本文将深入探讨Java中的数据结构,从基础概念到高级应用,包括示例代码和实际用例。第一部分:基础数据结构1.数组(Array)Java中的数组是一种基本的数据结构,用于存储一组相同类型的元素。......
  • 数据结构(C/C++)专题一:顺序表与链表
    今天开始一个新的专题:数据结构当然,不仅仅适用于学习也适用于408考研。那么提起数据结构思维导图:总结如下:·1.初识顺序表与链表首先呢我们要明白,数据结构有物理结构,也有逻辑结构物理结构就是电脑实际的结构,链式,非链式,索引,散列eg:链式结构(LinkedStructure)例子:火车车......
  • 考研计组chap2数据的表示和运算(补充)
    一、进位计数制1.r进制第i位表示r进制的权为i2.进制转换(1)r->10对应位置数*权值(2)2->16or8每三位2进制数可表示1位16进制每四位2进制数可表示1位16进制so分开之后转为16进制即可eg:1111000010.01101转8、1600111100  0010.01101000=>(3C2.68)H 0......
  • C语言数据结构实现-静态链表2-基本操作
    上节,我们初步创建了一个静态链表,本节学习有关静态链表的一些基本操作,包括对表中数据元素的添加、删除、查找和更改。本节是建立在已能成功创建静态链表的基础上,因此我们继续使用上节中已建立好的静态链表学习本节内容,建立好的静态链表如图1所示:静态链表添加元素例如,在图1......
  • 数据结构 7.二叉树的性质
    ......