美文网首页程序员
浅谈数据结构以及其特点

浅谈数据结构以及其特点

作者: Aliven888 | 来源:发表于2020-08-06 09:56 被阅读0次

文档声明:
以下资料均属于本人在学习过程中产出的学习笔记,如果错误或者遗漏之处,请多多指正。并且该文档在后期会随着学习的深入不断补充完善。


资料仅供学习交流使用。
作者:Aliven888

1、简介:

这边文章将会从数据结构的定义、逻辑结构、存储结构、数据运算、相互关系、算法的时间复杂度等几个方面对数据结构进行介绍。

2、什么是数据结构

在了解数据结构之前,我们先了解下什么是数据、数据元素、数据项以及数据对象

  • 什么是数据?
    数据实际上可以简单理解为我们对客观事物的符号表示;在计算机科学中,随着我们对计算机技术的深入理解,可以把数据理解为所有能输入到计算机中并被计算机程序处理的符号的总称。比如我们在Windows编程中常用的数据类型(int, double, string 等),都是数据的体现。

  • 什么是数据项?
    数据项是数据的最小单位。

  • 什么是数据元素?
    数据元素是表示数据的基本单位;一个数据元素可以由若干个数据项组成。例如,如果我们把一个学生比作数据元素,那么它就是由学号,姓名等若干数据数据项组成的。

  • 什么是数据对象?
    数据对象简单可以理解为是数据元素相同(或者相似)的数据组成的集合的总称。

  • 什么是数据结构
    数据结构是指相互之间存在着某种关系的数据元素的集合,数据结构中的关系主要指相邻关系,其主要包含三方面的内容:逻辑结构,存储结构和数据运算;关于这三个方面的内容,下面会一一介绍。

3、数据的逻辑结构

数据的逻辑结构主要描述的就是数据元素之间的逻辑关系,它与数据的存储结构没有任何关系,同一逻辑结构的数据可以对应多种存储结构。总的来说,数据的逻辑结构主要分为以下几类。

3.1、线性结构

线性结构是指在该结构中的数据元素之间存在一对一的关系。在线性结构中,开始端元素和结束端元素都是唯一的,并且除了开始端元素和结束端元素外,每一个数据元素都有且仅有一个前驱元素和一个后继元素。


线性结构

3.2、树形结构

树形结构是指在该结构中的数据元素之间存在着一对多的关系。树形结构只有一个开始端元素(也成为根节点),但是却会有多个结束端元素;除了开始端元素外,每个元素都仅有一个前驱元素,但是会有零个或者多个后继元素。


树形结构

3.3、图形结构

图形结构是指该结构中的数据元素之间存在着多对多的关系,每个元素都可以有多个前驱元素,也可以有多个后继元素。


图形结构

4、数据的物理结构

数据的物理结构又称为存储结构,是数据的逻辑结构在计算机中的存储形式(又称映像)。它包含数据元素的表示和关系的表示。
数据元素之间的关系在计算机中有两种不同的表示:顺序存储(映像)和非顺序存储(映像),其中顺序存储(映像)是借助数据元素在存储器中的物理位置来表示数据元素之间的逻辑关系的,而非顺序存储(映像)则是借助指针(指向数据元素的物理存储地址)表示数据元素之间的逻辑关系。
实际上,数据结构中常用的物理存储方式有一下几种。

4.1、顺序存储方法

该方法是把数据元素存放在物理地址连续的存储单元中,逻辑上相邻的两个元素其物理存储地址也是相邻的,数据元素之间的逻辑关系和物理关系是一一对应的。在C/C++中常见的数组就是这种存储方式。

4.2、链式存储方法

该方法是把数据元素存放在任意存储单元中的,逻辑上相邻的两个元素之间在物理位置上并不一定相邻(各个元素间物理空间地址是随机的),而他们之间的关联是有各元素附带的指针字段建立起来的。在C/C++中,常见的链表就是这样方式。

4.3、索引存储方法

该方法通常是在存储元素节点信息的同时,还建立的附加的关系索引表。索引表中的每一项称为索引项,索引项有关键字+地址组成(关键字:唯一标识一个节点, 地址:指向节点的指针)。这种带有索引的存储结构可以大大提高数据的查找速度。

4.4、散列(哈希)存储方法

该方法的基本思想是根据节点的关键字通过哈希函数直接计算出该节点的存储地址,这种存储方式从本质上讲数顺序存储和链式存储的一个扩展。

5、数据的运算

数据运算的实现和执行效率都与存储结构有关。一个数据结构所包含的数据运算的种类和个数,以及每种运算中的参数个数和类型,都应依旧数据结构的实际用途和需求来设定。

相关文章

  • 浅谈数据结构以及其特点

    文档声明:以下资料均属于本人在学习过程中产出的学习笔记,如果错误或者遗漏之处,请多多指正。并且该文档在后期会随着学...

  • Redis数据结构与对象

    了解常见的对象的数据结构及其实现的特点掌握5种对象及其常见应用场景 1. Redis对象的数据结构 简单动态字符串...

  • List、Set、数据结构、Collections

    学习目标 能够说出常见得数据结构有哪些及其特点 能够说出数组结构特点 能够说出栈结构特点 能够说出数组结构特点 能...

  • 浅谈算法和数据结构

    注:采转归档,自己学习查询使用 浅谈算法和数据结构: 一 栈和队列浅谈算法和数据结构: 二 基本排序算法浅谈算法和...

  • 算法学习

    数据结构学习笔记:树与树的表示、二叉树及其遍历、二叉搜索树、平衡二叉树、堆、哈夫曼树、集合及其运算算法学习笔记浅谈...

  • iOS架构补完计划--浅谈MVC及其衍生架构模式(附简易图解)

    iOS架构补完计划--浅谈MVC及其衍生架构模式(附简易图解) iOS架构补完计划--浅谈MVC及其衍生架构模式(...

  • 数据结构与算法目录与大纲

    1.数据结构 1.1 基本的数据结构 基本数据结构ADT及其实现常用数据结构对比及其应用场景查找树(搜索树)优先队...

  • 创新及其特点

    现在是一个充满竞争的时代,无论是企业还是企业管理者,只有不断创新,才能在激烈的竞争中立于不败之地。创新是带有氧气的...

  • Java学习Day09

    今日学习内容总结 数据结构 红黑树 数据结构 栈 特点:先进后出 队列 特点:先进先出 数组 特点:查询快(可以通...

  • 浅谈L0,L1,L2范数及其应用

    原文传送门:浅谈L0,L1,L2范数及其应用 浅谈L0,L1,L2范数及其应用 在线性代数,函数分析等数学分支中,...

网友评论

    本文标题:浅谈数据结构以及其特点

    本文链接:https://www.haomeiwen.com/subject/lzslrktx.html