数据结构---第一章绪论

数据结构是数据元素的集合,包括逻辑结构、存储结构和数据运算。抽象数据类型定义数据模型及操作,如栈和队列。存储结构有顺序、链式、索引和散列,例如循环队列用顺序存储。逻辑结构独立于存储结构,但不唯一决定它,如栈可顺序也可链式。存储数据需同时存储元素值和关系。链式存储节点间可不连续,但内部地址需连续。不同数据结构的逻辑和物理结构可能相同,运算效率会因存储方式变化。

1什么是数据结构?

数据结构是相互之间存在一种或多种特定关系的数据元素的集合。在任何问题中,数据元素都不是孤立存在的,他们之间存在某种关系,这种数据元素相互之间的关系称为结构。
数据结构包括三方面的内容:逻辑结构,存储结构和数据的运算。

2什么是抽象数据类型?

抽象数据类型(ADT,AbstractDataType)是指一个数据模型以及定义在此数据模型上的一组操作。它通常是对数据的某种抽象,定义了数据的取值范围及其结构形式,以及对数据操作的集合。
可以用抽象数据类型定义一个完成的数据结构,因为它有结构有操作

3什么是数据的存储结构?

存储结构是指数据结构在计算机中的表示(又称映像),也称物理结构。它包括数据元素的表示和关系的表示。数据的存储结构是用计算机语言实现的逻辑结构,它依赖于计算机语言。
数据的存储结构主要有顺序存储,链式存储,索引存储,散列存储。
循环队列是采用顺序存储而非链式存储。
栈和循环队列不一样,栈是一种抽象数据结构,可采用顺序存储或链式存储,只表示逻辑结构。

4数据的逻辑结构和存储结构之间有什么关系?

(1)数据的逻辑结构独立于存储结构,但不唯一决定存储结构。

我们都知道,逻辑结构分为线性结构和非线性结构。对于栈而言,既可以采用顺序存储,又可采用链式存储。也就是说逻辑结构不依赖于存储结构。

(2)数据的存储结构不独立于其逻辑结构

数据的存储结构是依赖于逻辑结构的,比如对于一个数组而言,它的各个元素之间的地址总得连续吧,采用顺序存储是最佳的方式。
这两点加起来就是说逻辑结构的优先级更高

5在存储数据时,不仅要存储数据元素的值,而且要存储数据元素之间的关系,比如先后关系。

6对于链式存储,各个不同结点的存储空间可以不连续,但结点内的存储单元地址必须连续,一般而言,一个结点仅有一个存储单元,但是万一挖坑呢。

7对于两种不同的数据结构,逻辑结构或物理结构一定不相同吗?

应当注意到,数据的运算也是数据结构的一个重要方面。对于两种不同的数据结构,他们的逻辑结构和物理结构有可能相同。比如二叉树和二叉排序树,二叉排序树可以采用二叉树的逻辑表示和存储方式,前者通常用于表示层次关系,而后者通常用于排序和查找。虽然它们的运算都有建立树,插入结点,删除结点等功能。但对于二叉树和二叉排序树,这些运算的定义是不同的,以查找结点为例,二叉树的时间复杂度为O(n),二叉排序树的时间复杂度为O(log2n)。

8对相同的逻辑结构,同一种运算在不同的存储结构下实现时,它们的效率相同吗?

不同的,对于线性表而言,它既可以采用顺序存储方式实现,又可以用链式存储方式实现。在顺序存储方式下,在线性表中插入和删除元素,平均要移动将近一半的元素,时间复杂度为O(n);而在链式存储方式下,插入和删除的时间复杂度都是O(1)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值