数据结构 第一章 绪论
1.1
- 对于两种不同的数据结构,逻辑结构或物理结构一定不相同吗?
(不是很明白要怎么说明,第一会先想到举例)
不一定,如顺序表的逻辑结构为线性表,但其存储结构可为数组或链表,而逻辑结构为图的数据结构,其物理结构也可以是链表。
【标准答案:
应该注意到,数据的运算也是数据结构的一个重要方面·
对于两种不同的数据结构,它们的逻辑结构和物理结构完全有可能相同·比如二又树和二叉排序树,二叉排序树可以采用二叉树的逻辑表示和存储方式,前者通常用于表示层次关系,而后者通常用于排序和查找:虽然它们的运算都有建立树、插入结点,删除结点和查找结点等功能,但对于二叉树和二叉排序树,这些运算的定义是不同的,以查找结点为例,二叉树的时间复杂度为O(n),而二叉排序树的时间复杂度为O(log2n)。】 - 试举一例,说明对相同的逻辑结构,同一种运算在不同的存储方式下实现时,其运算效率不同。
顺序表使用顺序存储(数组)和使用链式存储时实现查找时,顺序存储的运算效率为O(1),而链式存储的运算效率为O(n)
【标准答案:线性表既可以用顺序存储方式实现,又可以用链式存储方式实现.在顺序存储方式下,在线性表中插入和删除元素,平均要移动近一半的元素,时间复杂度为面在链式存储方式下,插入和删除的时间复杂度都是O(1).】