数据结构复习材料2

[1.1] 什么是数据结构? 有关数据结构的讨论涉及哪三个方面?

正确答案:
【解答】数据结构是指数据以及相互之间的关系。记为:数据结构 = { D, R }。其中,D是某一数据对象,R是该对象中所有数据成员之间的关系的有限集合。有关数据结构的讨论一般涉及以下三方面的内容: ① 数据成员以及它们相互之间的逻辑关系,也称为数据的逻辑结构,简称为数据结构; ② 数据成员极其关系在计算机存储器内的存储表示,也称为数据的物理结构,简称为存储结构; ③ 施加于该数据结构上的操作。数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储不是一码事,是与计算机存储无关的。因此,数据的逻辑结构可以看作是从具体问题中抽象出来的数据模型,是数据的应用视图。数据的存储结构是逻辑数据结构在计算机存储器中的实现(亦称为映像),它是依赖于计算机的,是数据的物理视图。数据的操作是定义于数据逻辑结构上的一组运算,每种数据结构都有一个运算的集合。例如搜索、插入、删除、更新、排序等。

 
 
27.

[1.2] n的增长率由小到大顺序排列下列各函数

(2/3)n , (3/2)n, n2, nn, n!, 2n, n, log2n, n3

正确答案:
log2n < n < n2 < n3 < (2/3)n < (3/2)n < 2n < n! < nn

 
 
28.

[1.4] 分析下面语句段执行的时间复杂度,并给出理由。

1for(i=1;i<=n;i++)

        for(j=1;j<=n;j++)

           s++;

 

2for(i=1;i<=n;i++)

        for(j=i;j<=n;j++)

            s++;

正确答案:
(1)时间复杂度为O(n2)。双重for循环语句,其中外循环n次,对每一次外循环,内循环s++;语句执行n次。总的s++;语句执行n2 次,时间复杂度为O(n2) (2)时间复杂度为O(n2)。双重for循环语句,其中外循环n次,对每一次外循环,内循环s++;语句执行次数都在变化。第1次外循环时,内循环s++;语句执行次数为n次;第2次外循环时,内循环s++;语句执行次数为n-1次;第3次外循环时,内循环s++;语句执行次数为n-2次; …… 第n次外循环时,内循环s++;语句执行次数为1次。总之,”s++;”语句共执行n+(n-1)+(n-2)+……+2+1=1/2n(n+1)次,时间复杂度为O(n2)

 
 
29.

[2.1] 线性表的两种存储结构顺序表和链表中:

1)两种存储表示各有哪些主要优缺点?

2)如果有 n个线性表同时并存,并且在处理过程中各表的长度会动态变化,线性表的总数也会自动地改变。在此情况下,应选用哪种存储结构? 给予解释?

   (3)若线性表的总数基本稳定,且很少进行插入和删除,但要求以最快的速度存取线性表中的元素,那么应采用哪种存储结构?给予解释?
正确答案:
(1)顺序存储表示是将数据元素存放于一个连续的存储空间中,实现顺序存取或(按下标)直接存取。它的存储效率高,存取速度快。但它的空间大小一经定义,在程序整个运行期间不会发生改变,因此,不易扩充。同时,由于在插入或删除时,为保持原有次序,平均需要移动一半(或近一半)元素,修改效率不高。 链接存储表示的存储空间一般在程序的运行过程中动态分配和释放,且只要存储器中还有空间,就不会产生存储溢出的问题。同时在插入和删除时不需要保持数据元素原来的物理顺序,只需要保持原来的逻辑顺序,因此不必移动数据,只需修改它
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值