数据结构知识点背诵(问题+答案)——第一章绪论

1.问题

  1. 数据结构的三要素是什么?
  2. 逻辑结构分为哪两种结构?
  3. 数据的基本单位是什么?
  4. 数据元素由若干个什么组成?
  5. 数据元素不可分割的最小单位是什么?
  6. 数据对象是具有()的()的()
  7. 数据类型分为哪几种类型?
  8. 算法的设计取决于()结构,算法的实现依赖于()结构?
  9. 线性结构特点并举几个例子?
  10. 非线性结构特点并举例?
  11. 存储结构有哪些?
  12. 算法五个特性?
  13. 好算法目标?
  14. 时间复杂度比较?
  15. 算法原地工作指什么?
  16. 时间复杂度指最坏情况下估算算法执行时间的一个上界?
  17. 语言级别越高,效率越低?
  18. 一个算法应该是?

2.答案

  1. 逻辑结构、存储结构(物理结构)、数据的运算
  2. 线性结构、非线性结构
  3. 数据元素
  4. 数据项
  5. 数据项
  6. 相同性质 数据元素 集合
  7. 原子类型 结构类型 抽象数据类型(ADT)
  8. 逻辑 存储
  9. 一对一;栈 队列 线性表 串
  10. 集合 一对多 多对多;树 图
  11. 顺序存储 链式存储 索引存储 散列存储(后三者非顺序存储)
  12. 有穷性 确定性 可行性 输入 输出
  13. 正确性 可读性 健壮性(鲁棒性) 效率与低存储量需求
  14. 常对幂指阶
  15. 算法辅助空间为常量,即O(1)
  16. 问题求解步骤的描述

3.错题

可以用()定义一个完整的数据结构。
A. 数据元素 B.数据对象 C.数据关系 D.抽象数据类型

以下属于逻辑结构的是
A. 顺序表B. 哈希表C. 有序表D.单链表

以下与数据的存储结构无关的术语是
A.循环队列B.链表C.哈希表D.栈
在存储数据时,不仅要存储各元素的值,还要存储()
A.数据的操作方法B.数据元素类型C.数据元素之间的关系D.数据的存储方法
结点内存储单元地址是否一定要连续?

DCDC是

4.重点

  1. 以上概念背下来
  2. 掌握如何计算时间复杂度(公式法如何算,从右往左)
  3. 思维导图
第一章 绪论作业答案(共50分) 一、分析如下程序中 (1)~ (10)各语句的频度。(每个1分,共10分) Ex( ) { int i , j , t ; (1) for( i=1 ; i<10 ; i++) //n = (2) printf(“\n %d” , i ); //n = (3) for(i=1; i<=2; i++) //n = (4) printf(“\n”); //n = (5) for(i=1; i<=9; i++) //n = { (6) for(j=1; j <= i ; j++) //n = { (7) t = i * j ; //n = (8) printf(“]”,t); //n = } (9) for(j=1; j 0) { if(x > 100) {x -= 10 ; y -- ;} else x ++ ; } 问if 语句执行了多少次?(2分) y--执行了多少次?(2分) x ++执行了多少次?(2分) 三、回答问题(共25分) 书中16页的起泡排序如下: void bubble_sort(int a[],int n){ //将a中整数序列重新排列成自小至大有序的整数序列。 for(i=n-1,change=TRUE;i>=1&&change;--i){ change=FALSE; for(j=0;ja[j+1]{a[j]<-->a[j+1];change=TRUE; } } }//bubble_sort 1.(共15分)分析该算法的最佳情况 ,最坏情况和平均情况下各自的时间复杂度(给出分析思路与过程)。 (1) 最佳情况的时间复杂度分析(5分): (2) 最坏情况的时间复杂度分析(5分): (3) 平均情况的时间复杂度分析(5分): 2.(共10分)比较与C语言书中的起泡排序异同,并从时空效率角度说明谁更优。 四、完成如下选择题(每3分,共9分)。 1. 设f为原操作,则如下算法的时间复杂度是( )。 for (i = 1; i*i=1;i--) for(j=1;jA[j+1]) A[j]与A[j+1]对换; 其中n为正整数,则算法在最坏情况下的时间复杂度为( )。 A.O(n) B.O(nlog2n) C. O(n3) D. O(n2)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值