zoukankan      html  css  js  c++  java
  • 逻辑结构和存储结构

    这两天在复习数据结构部分的内容,之前考研的时候对数据结构的理解感觉不深,因为只是考研专业课要考数据结构,所以就单独看了数据结构的书,做了各种题,记了各种添加、删除、遍历等等。
    那数据结构到底是什么?
    百度百科:数据结构具体指同一类数据元素中,各元素之间的相互关系,包括三个组成成分,数据的逻辑结构,数据的存储结构和数据运算结构。结合今天在复习过程中新的理解,主要总结一下逻辑结构和存储结构。
    • 什么是逻辑结构?

       简单说,逻辑结构就是数据之间的关系。而按数据之间的关系来说,逻辑结构大概可以分为两种:线性结构非线性结构(集合、树、网)

      • 线性结构:有且只有一个开始结点和一个终端结点,并且所有结点都最多只有一个直接前驱和一个直接后继。例如:线性表,典型的线性表有:顺序表、链表、栈(顺序栈、链栈)队列(顺序队列、链队列)。它们共同的特点就是数据之间的线性关系,除了头结点和尾结点之外,每个结点都有唯一的前驱和唯一的后继,也就是所谓的一对一的关系。
      • 非线性结构:对应于线性结构,非线性结构也就是每个结点可以有不止一个直接前驱直接后继。常见的非线性结构包括:树(二叉树)、图(网)等。
    • 什么是存储结构?

       逻辑结构指的是数据间的关系,而存储结构是逻辑结构的存储映像。通俗的讲,可以将存储结构理解为逻辑结构用计算机语言的实现。常见的存储结构有顺序存储、链式存储、索引存储以及散列存储(哈希表)

      • 顺序存储:把逻辑上相邻的节点存储在物理位置上相邻的存储单元中,结点之间的逻辑关系由存储单元的邻接关系来体现。由此得到的存储结构为顺序存储结构,通常顺序存储结构是借助于数组来描述的。优点:节省空间,可以实现随机存取;缺点:插入、删除时需要移动元素,效率低。

      • 链式存储:在计算机中用一组任意的存储单元存储线性表的数据元素(这组存储单元可以是连续的,也可以是不连续的)。特点是元素在物理上可以不相邻,所以每个数据元素包括了一个数据域和一个指针域,数据域用来存放数据,而指针域用来指向其后继结点的位置。优点:插入、删除灵活;缺点:不能随机存取,查找速度慢。

    • 逻辑结构和存储结构的区别

       这两者并不冲突,一个指的是数据之间的关系,而另一个指这种关系在计算机中的表现形式。比如,线性表中的栈,数据元素之间的关系是一对一的,除头和尾结点之外的每个结点都有唯一的前驱和唯一的后继,这体现的是逻辑结构;而对于栈中的结点来说,它们可以顺序存储(也就是顺序栈),取一段连续的存储空间,将栈结点按顺序存入,每个结点和其前驱和后继在物理上都是相邻的。同时,栈结点也可以链式存储(链栈),每个结点中包括数据域和指针域,而指针域就是用来指向其后继的,在访问时就可以通过指针来找到其后继进行访问,每个结点之间物理上可以相邻也可以不相邻。

      另外的总结

      不同的线性表之间的区别:
      线性表在元素的关系上是一样的,都是“线性“关系,不同的线性表区别主要体现在不同的特性上。比如:队列的先进先出、栈的后进先出等。
      以存储结构相同、逻辑结构又同为线性表的链栈和链队列为例,它们都是链式存储的,每个结点都是由数据域和指针域组成,每个结点也都有唯一的前驱和唯一的后继(除头尾结点外)。那么它们看起来就很相似,区别呢?区别就在于给他们定义的特殊操作,它们都有”出“和”入“两种操作,一个是“先进先出”,而一个是“后进先出”。

  • 相关阅读:
    BZOJ 3132: 上帝造题的七分钟 树状数组+差分
    PAT Advanced 1006 Sign In and Sign Out (25 分)
    PAT Advanced 1011 World Cup Betting (20 分)
    PAT Basic 1032 挖掘机技术哪家强 (20 分)
    PAT Basic 1028 人口普查 (20 分)
    PAT Basic 1004 成绩排名 (20 分)
    大数据数据库HBase(二)——搭建与JavaAPI
    PAT Advanced 1009 Product of Polynomials (25 分)(vector删除元素用的是erase)
    PAT Advanced 1002 A+B for Polynomials (25 分)(隐藏条件,多项式的系数不能为0)
    PAT Basic 1041 考试座位号 (15 分)
  • 原文地址:https://www.cnblogs.com/Bill-LHR/p/6758867.html
Copyright © 2011-2022 走看看