数据结构概述 - 逻辑结构与物理结构 - 附练习题

Posted YK菌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构概述 - 逻辑结构与物理结构 - 附练习题相关的知识,希望对你有一定的参考价值。

嗨!~ 大家好,我是YK菌 🐷 ,一个微系前端 ✨,爱思考,爱总结,爱记录,更爱分享 🏹,欢迎关注我呀 😘 ~ [微信号: yk2012yk2012,微信公众号:ykyk2012]

一、概述——为什么要学数据结构

你一定听说过这句话: 程序 = 数据结构 + 算法。 今天我们来研究的数据结构

现在的计算机主要是处理一些非数值计算,也就是处理一些字符表格图像等一些具有结构的数据。

数据结构是一门研究非数值计算程序设计中操作对象,以及这些对象之间的关系操作的学科。

上面这句严版较菜里的定义比较拗口,其实简单来说数据结构就是研究如何合理地组织数据、高效地处理数据问题的。

可以组织、处理数据了,再加上一些算法,就可以组成程序,用来解决一些实际的问题。

今天我们主要来介绍数据结构的一些基本概念

二、数据有哪些结构

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

数据结构主要分为逻辑结构存储结构两个层级。逻辑结构顾名思义就是逻辑上的结果,是人类自己总结出来并给他命名的结构,而存储结构就是真正将这些数据存储在计算机中所使用的结构。

1. 逻辑结构

(1)集合结构

集合的概念我们在高中就已经学过,这里也类似。集合结构的意思就是将这些数据放在同一个集合中,它们之间没有什么关系。

举一个例子:在一个新入学的班级里,学生看作数据,那班级就可以看作是一个集合结构

(2)线性结构

线性结构中的数据具有一对一的关系

比如说,这个班级要将学生进行排列,比如是按照入学报道顺序进行排列,这就将组成一个线性结构

线性结构包括我们熟悉的线性表、栈、队列、字符串、数组等

(3)树结构

树结构中的数据具有一对多的关系

比如这个班级中要选出班长、小组长,这里班长管理着小组长,小组长管理着组员,这就形成了一个树结构

(4)图结构或网状结构

图结构中的数据具有多对多的关系

比如说这个班级,大家熟悉了之后,每位同学都有了很多朋友,朋友也有很多朋友,这就形成了一个图结构

(5)小结

2. 存储结构

将数据存储在计算机中,需要存储结构,也称为物理结构。可以分为顺序存储结构和链式存储结构两种。

(1)顺序存储结构

顺序存储结构是借助数据元素在存储器中的相对位置来表示数据之间的逻辑关系,顺序存储结构要求所有的元素依次存放在一片连续的存储空间中。

(2)链式存储结构

链式存储结构是借助指针表示数据元素之间的逻辑关系,链式存储结构无需占用一整块存储空间。但为了表示结点之间的关系,需要给每个结点附加指针字段,用于存放后继元素的存储地址。

由于javascript中没有指针,但是JavaScript有引用类型。引用也是指向地址的,所以可以使用引用类型来建立结点之间的链接关系。
这里可以看我之前的博文:设计单链表设计双链表

三、总结

  1. 数据结构是一门研究非数值计算程序设计中操作对象,以及这些对象之间的关系操作的学科

  2. 数据结构包括两个方面的内容:数据的逻辑结构和存储结构。同一逻辑结构采用不同的存储方法,可以得到不同的存储结构

    1. 逻辑结构是从具体问题抽象出来的数学模型,从逻辑关系上描述数据,它与数据的存储无关。根据数据元素之间关系的不同特性,通常有四类基本逻辑结构:集合结构、线性结构、树形结构和图状结构

    2. 存储结构是逻辑结构在计算机中的存储表示,有两类存储结构:顺序存储结构和链式存储结构

四、练习

(1)在数据结构中,从逻辑上可以把数据结构分成( )。

  • A. 动态结构和静态结构
  • B. 紧凑结构和非紧凑结构
  • C. 线性结构和非线性结构
  • D. 内部结构和外部结构

(2)与数据元素本身的形式、内容、相对位置、个数无关的是数据的( )。

  • A. 存储结构
  • B. 存储实现
  • C. 逻辑结构
  • D. 运算实现

(3)通常要求同一逻辑结构中的所有数据元素具有相同的特性,这意味着()。

  • A. 数据具有同一特点
  • B. 不仅数据元素所包含的数据项的个数要相同,而且对应数据项的类型要一致
  • C. 每个数据元素都一样
  • D. 数据元素所包含的数据项的个数要相等

(4)下述()与数据的存储结构无关。

  • A. 栈
  • B. 双向链表
  • C. 散列表
  • D. 线索树
  • E. 循环队列

(5)连续存储设计时,存储单元的地址()

  • A. 一定连续
  • B. 一定不连续
  • C. 不一定连续
  • D. 部分连续,部分不连续

(6)以下属于逻辑结构的是()

  • A. 顺序表
  • B. 散列表
  • C. 有序表
  • D. 单链表

欢迎你将答案写在讨论区,一起交流。欢迎关注我的专栏,和YK菌做好朋友!

以上是关于数据结构概述 - 逻辑结构与物理结构 - 附练习题的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 备份概述

Oracle体系结构概述

Oracle体系结构概述

软考 系统架构设计师计算机网络② 网络规划与设计

数据结构概述

数据库设计:习题