数据结构的内容可归纳为三个部分:逻辑结构、物理结构和运算集合 。
按某种逻辑关系组织起来的一批数据,按一定的映像方式把它们存放在计算机的存储器中,并在这些数据上定义一个运算的集合,这些是数据结构课程的基本内容。
逻辑结构(思维模型)
数据的逻辑结构是对数据之间关系的描述,它与数据的存储结构无关,
同一种逻辑结构可以有多种存储结构 (这句话是解题的关键)。
分类:
逻辑结构 | 描述 | |
---|---|---|
线性结构 | 一对一的线性关系 | |
非线性结构 | 树形结构 | 一对多的层次关系 |
图形结构 | 多对多的任意关系 | |
集合结构 | 除了同属于一个集合外, 无任何其他关系 |
归纳:
逻辑结构 | 包括 |
---|---|
线性结构 | 线性表、栈、队列、字符串、数组、广义表 |
非线性结构 | 树、图、集合 |
物理结构(存储结构)
存储结构 | 概念 | 一般形式 |
---|---|---|
顺序存储方法 | 把逻辑上相邻的结点存储在物理位置上相邻的存储单元中, 结点之间的逻辑关系由存储单元的邻接关系来体现。 |
数组 |
链式存储方法 | 不要求逻辑上相邻的结点在物理位置上也相邻, 结点间的逻辑关系是由附加的指针字段表示的。 |
借助指针 |
索引存储方法 | 在存储结点信息时除建立存储结点信息外, 还建立附加的索引表来标识结点的地址。 |
<关键字,地址> |
散列存储方法 | 根据结点的关键字通过散列函数直接计算出该结点的存储地址。 | 数组(是顺序存储的扩展) |
考研真题解析
【C】解析:
认真读题好吗!从逻辑上 ,数据结构分为线性结构和非线性结构 。
【D】解析:
与存储结构(即物理结构)无关的术语。
在之后的学习中我们会知道,我们学到的线性表、栈、队列、树、图等,它们都是从逻辑结构上的定义,
而具体将它们存放进计算机的存储方法,才是存储结构的范畴。
也就是说,栈是一种逻辑结构,它可以被存储为顺序栈或链栈,这才是它的存储结构。
而另一个容易混淆的选项是 A. 循环队列 。
在队列的学习中会学到,循环队列默认是以顺序结构存储,因此已限定其存储方法,可认为是一种存储结构。
【D】解析:
A.广义表 ,表元素可以是原子或者广义表的一种线性表的扩展结构。
B.二叉树 ,是非线性结构中的树形结构 ,具有一对多的层次关系 。
C.稀疏矩阵 ,矩阵明显不是一对一的线性关系。
D.串 ,是由零个或多个字符组成的有限序列。是限定了元素为字符的线性表。通常用一个 字符数组 来表示。
提到由数组来表示,即为线性结构。
【A】解析:
A.栈是一种逻辑结构,它可以被存储为顺序栈或链栈,这才是它的存储结构。
B.哈希表是存储结构中的散列存储方法;
C.线索树是在链式存储结构的基础上对树进行线索,与存储结构中的链式存储结构有关。
D.双向链表也是以链式结构存储的。
数据结构包括逻辑结构和存储结构两个层次。
数据结构是相互之间存在一种或者多种特定关系的数据元素的集合
a、逻辑结构:差不多是想象创造出来的模型
逻辑结构分为四种类型:集合结构,线性结构,树形结构,图形结构。
集合结构:数据元素同属一个集合,单个数据元素之间没有任何关系。
线性结构:类似于线性关系,线性结构中的数据元素之间是一对一的关系。
树形结构:树形结构中的数据元素之间存在一对多的关系。(各元素及元素关系所组成图形类似于树状图)。
图形结构:数据元素之间是多对多的关系。如下图所示。
b、存储结构(物理结构)
物理结构又叫存储结构,分为两种,一种是顺序存储结构一种是链式存储结构。
(1)、顺序存储结构
顺序存储结构是把数据元素放到地址连续的存储单元里面,
其数据间的逻辑关系和物理关系是一致的。
之前学习的数组就是一种顺序存储结构。(如图所示)
(2)、链式存储结构
链式存储结构:是把数据元素存放在任意的存储单元里面,这组存储单元可以是连续的也可以是不连续的。
根据指针找出相邻元素的位置
[
](https://blog.csdn.net/zjq709918448/article/details/94123530)