1.可以用抽象数据类型定义有一个完整的数据类型。
抽象数据类型包括数据对象,数据关系,抽象运算。
数据结构:逻辑结构+数据运算。
2.有序表属于逻辑结构。
有序表是一种逻辑结构,它只描述了数据元素之间的逻辑关系,而与实际的物理存储方式无关。这种逻辑上的有序性意味着表中的元素之间存在某种顺序关系,例如按照数值大小、字母顺序或者日期先后等规则排列。
相比之下,顺序表则是一种物理意义上的存储结构,它的元素一个挨一个地存储在连续的物理空间中,如数组就是一种典型的顺序表。
3.线性表、有序表和顺序表在逻辑结构、存储结构和数据元素排列等方面差异。
- 逻辑结构
- 线性表:线性表是一种逻辑结构,它表示的是一个由相同类型的数据元素组成的序列,元素之间是一对一的关系。
- 有序表:有序表是线性表的一种特例,它的元素按照递增或递减的方式排列起来。
- 顺序表:顺序表则是线性表的一种物理存储方式,它的元素在物理上连续存储,如数组就是一种典型的顺序表实现。
- 存储结构
- 线性表:本身不涉及具体的存储结构,可以采用顺序存储或链式存储等方式实现。
- 有序表:既可以采用顺序存储,也可以采用链式存储,其存储结构取决于实现时的选择。
- 顺序表:只能采用顺序存储结构,即元素被存储在一段连续的内存地址中。
- 数据元素排列
- 线性表:数据元素没有特定的排列顺序,可以是任意排列。
- 有序表:数据元素必须以递增或递减的方式有序排列。
- 顺序表:数据元素的排列无特定要求,与线性表类似,但受限于物理存储结构的连续性。
- 操作效率
- 线性表:抽象概念,不直接涉及具体操作,操作效率取决于具体实现。
- 有序表:由于元素有序,某些操作(如查找)可以更高效地执行。
- 顺序表:支持随机存取,访问任何位置的元素时间都是常数级,插入和删除操作可能需要移动大量元素。
- 应用场景
- 线性表:适用于需要简单序列存储的情况。
- 有序表:适用于需要经常进行有序操作(如二分查找、归并等)的场景。
- 顺序表:适用于数据规模固定且更偏重读取性能的场景。
4.数据结构三要素:逻辑结构,物理结构,运算。
数据结构中数据的逻辑结构独立于物理结构。
5.对于两种不同的数据结构,逻辑结构或物理结构一定不相同吗?
可能相同。数据的运算也是数据结构的一个方面。
比如二叉树和二叉排序树,二叉排序数可以采用二叉树的逻辑表示和存储方式,前者用于表示层次关系,后者用于排序和查找。虽然他们的运算都有建立数,插入节点,删除节点和查找节点等功能,但对于二叉树和二叉排序数,这些定义的意义不同,以查找为例,二叉树的平均复杂度为O(n),而二叉排序数的平均时间复杂度为O(log2n)。
6.举例说明相同的逻辑结构,同一种运算在不同的存储方式下现实时,其运算效率不同。
线性表既可以用顺序存储方式实现,也可以用链式存储方式实现。
在顺序存储方式下,在线性表中插入和删除元素,平均要移动一半的元素,时间复杂度为O(n);
在链式存储结构下,在线性表中插入和删除的时间复杂度为O(1);
7.一个算法应该是问题求解步骤的描述。
程序等于数据结构➕算法。
算法的五个重要性质:有穷性,确定型,可行性,输入,输出,拥有这五个特性不一定是算法。
8.算法的时间复杂度O(n^2),表示该算法的执行时间与n^2成正比,不是问题规模与n^2成正比,问题规模一直是n。
空间复杂的为O(1),表示该算法所需的辅助空间大小与问题规模n无关。
标签:存储,顺序,线性表,绪论,元素,有序,数据结构,结构 From: https://blog.csdn.net/m0_74098553/article/details/141960615