1、可以用()定义一个完整的数据结构
A.数据元素
B.数据对象
C.数据关系
D.抽象数据类型
选项 概念名称 简单定义 能完整定义数据结构吗? 类比(乐高)
A 数据元素 数据的基本单位 不能,只是单个个体 一块乐高积木
B 数据对象 性质相同的数据元素集合 不能,只有一堆数据,无关系 一袋相同形状的积木
C 数据关系 数据元素之间的逻辑关系 不能,只有关系,无数据无操作 积木的拼接规则
D 抽象数据类型(ADT) 数据对象 + 数据关系 + 基本操作集 三元组 能,完整定义一个数据结构 完整乐高套装:积木+规则+玩法
本题最佳解答
可以用(D.抽象数据类型)定义一个完整的数据结构。
• 抽象数据类型(Abstract Data Type,ADT):是指一个数据模型以及定义在该模型上的一组操作。
• 标准三元组表示:
ADT = (\boldsymbol{D,\ S,\ P})
◦ D:数据对象
◦ S:数据关系
◦ P:基本操作集
D:Data Object
中文:数据对象
• S:Data Relationship/Structure
中文:数据关系
• P:Data Operation / Primitive Operation
中文:基本操作集
抽象数据类型(ADT),是用数据对象、数据关系、基本操作集三元组来表示的,就像乐高城堡的"完整说明书":有零件(数据对象)、有拼接规则(数据关系)、有能做的搭建动作(基本操作集),三者合起来,才是一个完整的数据结构定义,所以答案是D。
两个实例强化理解
实例1:栈(经典数据结构)
抽象数据类型定义:
-
数据对象:性质相同的有序数据元素(比如一组整数)
-
数据关系:元素之间满足"后进先出"的逻辑关系
-
基本操作集:入栈、出栈、取栈顶元素、判断栈空
单独拿数据对象(整数)、数据关系(后进先出),都不是完整的栈,只有三者结合,才是完整的栈数据结构。
实例2:学生信息表
抽象数据类型定义:
-
数据对象:每个学生的学号、姓名、成绩等数据元素
-
数据关系:学生按学号排序的一一对应关系
-
基本操作集:添加学生信息、删除学生信息、查询成绩、修改信息
缺少任何一部分,都没法构成完整的学生信息数据结构。
2、下列选项中,属于逻辑结构的是()。
A.顺序表
B.哈希表
C.有序表
D.单链表
- 有序表,只看"关系",不管存在哪
比如:1,3,5,7,9
元素之间是从小到大有序的关系。
这个关系跟它存在数组里,还是存在链表里,有关系吗?
- 顺序表,只看"怎么存"
顺序表 = 用连续内存存放的线性表。
它只关心:在内存里是挨着放的。
那顺序表里的元素,可以是无序的吗?
比如:5,1,9,3,7
存在连续数组里 → 这叫顺序表,但不是有序表。
所以这道题答案就是 C。
04.下列关于数据结构的说法中,正确的是().。
A.数据的逻辑结构独立于其存储结构B.数据的存储结构独立于其逻辑结构C.数据的逻辑结构唯一决定其存储结构D.数据结构仅由其逻辑结构和存储结构决定
正确答案:A
• A 对:逻辑结构只关心"元素是什么关系",和计算机里怎么存无关,所以逻辑结构独立于存储结构。
• B 错:存储结构是逻辑结构的映射,不能独立存在。
• C 错:一个逻辑结构可以对应多种存储结构(如线性表→顺序+链式)。
• D 错:
数据结构三要素 = 逻辑结构 + 存储结构 + 数据运算
D 少了运算(操作),所以不对。
05.在存储数据时,通常不仅要存储各数据元素的值,而且要存储()。
A.数据的操作方法B.数据元素的类型C.数据元素之间的关系D.数据的存取方法
答案C 在存储数据时,不仅要存储数据元素的值,而且要存储数据元素之间的关系。