数据结构练习(1)
1.对于两种不同的数据结构,逻辑结构或物理结构一定不相同吗?
解析:
数据结构由三部分组成,分别是逻辑结构、存储结构和数据运算。
对于两种不同的数据结构,逻辑结构或物理结构完全有可能相同。比如二叉树和二叉排序树,二叉排序树可以采用二叉树的逻辑表示和存储方式,前者通常用来表示层次关系,而后者通常用来用于排序和查找。虽然二者均有建立树,插入结点,删除结点和查找结点等,但对于二叉树和二叉排序树,这些运算的定义是不同的,以查找结点为例,二叉树的时间复杂度为O(n),而二叉排序树的时间复杂度为O(log2n).
2.试举一例,说明对于相同的逻辑结构,同一种运算在不同存储方式下实现其运算效率不同
解析:
线性表既可以以顺序存储方式实现,也可以用链式存储方式实现。顺序存储方式下,在线性表中插入和删除元素,平均要移动近一半的元素,时间复杂度为O(n),在链式存储方式下,插入和删除元素的时间复杂度为O(1)。
线性表是由具有相同数据元素类型的有限个数据元素组成的,数据元素是由数据项组成的。