重点题:

第一章:小测-2、4、7

第二章:小测-3 & 编程-2、3

第一章 概论

part 1: 小测验

答案:

1.C你选对了

解析:  A、向量:直接访问型线性结构  B、散列表:目录索引型线性结构  C、图:无序  D、队列:是线性表按操作分类的一种(先入先出)
2.D你选对了
解析:  A、数组:按索引值从小到大存放在一片相邻的连续区域,定义了存储结构  B、双链表:链式存储  C、顺序表:按索引值从小到大存放在一片相邻的连续区域,定义了存储结构  D、队列:可以是顺序或链式存储,是逻辑结构
3.A、C你选对了
解析:  A、算法保证计算结果的正确性。  B、指令必须有限  C、算法不能含有死循环,必须在有限步骤内结束  D、算法具有确定性
4.B、D你选对了
解析:  A、(4)当f(n)=n,g(n)=n*2, 无论a多大,g(n)都不可能是O(af(n)).  B、(2) 如果f(n)是O(g(n)),g(n)是O(h(n)), 则f(n)是O(h(n)),所以f(n)+g(n)是O(h(n))  C、(3)logan=log(n)/log(a),logbn=log(n)/log(b),所以前者与后者只差了一个常数项,所以logbn一定是O(logan)  D、(1) 根据O()定义可知.
5.A、B你选对了
解析:  A、本代码实际上是求a中有序子数组中最长的长度。譬如,在[1, 8, 1, 2, 5, 0, 11, 9]中,最长的是[1, 2, 5],长度为3 。其时间复杂度与a中元素的实际取值状态相关。 1)若a的所有元素是按照降序方式排列。则外层循环n-1次,每次内层只执行一次,整个开销为θ(n) 2)若a的所有元素是按照升序方式排列。则外层循环n-1次,每次内层需要执行n-i-1次,整个开销为θ(n^2) 所以,一般来说,时间复杂度是Ω(n)的,也是O(n^2)
6.20

解析: 注意i从1到9全部遍历,j分别从2,4,6,...开始遍历到9,当i大于5时,循环不再对m进行操作.
i=1结束循环时,m=8;
i=2结束循环时,m=8+6=14;
i=3结束循环时,m=14+4=18;
i=4结束循环时,m=18+2=20;

7.(5)(1)(2)(4)(3)

解析: 计算复杂度时,系数是可以忽略的。(5)和(1)是指数级复杂度,大于(2)(3)(4)多项式级复杂度,区别在于指数中是否有n。而(5)的指数里还有指数级复杂度的表达式,(1)的指数是n,为多项式级,故(5)比(1)复杂。对于(2)(3)(4),(2)的指数最大,为2.5,(4)的指数居中,为2,(3)的指数最小,解释如下:logn的任意实数次方的复杂度都小于n,故(logn)^4比n复杂度低,故n*(logn)^4比n*n复杂度低,故(4)比(3)复杂,故答案为(5)(1)(2)(4)(3)

part 2: 编程题

(太简单了,略)

第二章 线性表

part 1: 小测验

答案

1.B、C、D你选对了

解析:  A、采用链接存储,便于插入和删除操作,如果采用顺序存储,插入和删除时需要大量移动元素,参考数组的元素删除  B、采用链接存储,便于插入和删除操作  C、顺序存储是按索引值从小到大存放在一片相邻的连续区域  D、线性表采用链接存储,在结点中存储link信息,不需占用连续存储单元
2.A、D你选对了
解析:  A、线性表在顺序存储时,查找第i个元素的时间与i的数值无关。 因为存储空间是连续的,直接由i可以得到元素位置  B、线性表在链式存储时,查找第i个元素的时间与i的数值无关。 因为存储空间是不连续的,需要从头或者尾结点开始查找元素,i越大,时间越长,时间不可能与i无关  C、线性表在顺序存储时,查找第i个元素的时间与i的数值成正比。 因为存储空间是连续的,直接由i可以得到元素位置  D、线性表在链式存储时,插入第i个元素的时间与i的数值成正比。 因为存储空间是不连续的,插入第i个元素不需要移动其他元素。但是在插入之前从头搜索到第i个元素的指针,所以插入时间跟i相关
3.B、C你选对了
解析:  A、p->next->prev=s; p->next=s; s->prev=p; s->next=p->next; 先更改会造成原来的p结点后来的next信息丢失  B、p->next->prev=s; s->prev=p; s->next=p->next; p->next=s; 最后更改p->next是正确的,否则会造成原来的p结点后来的next信息丢失  C、s->next=p->next; p->next->prev=s; s->prev=p; p->next=s; 最后更改p->next是正确的,否则会造成原来的p结点后来的next信息丢失  D、s->prev=p; s->next=p->next; p->next=s; p->next->prev=s; 先更改p->next成s再更改p->next->prev,会造成原来的p结点后来的next信息丢失
4.(1)(n)

解析: 已知结点后插入,不需要移动其他结点位置,所以为O(1) 2. 先要查找到值为x的结点,需要O(n),再插入,不需要移动其他结点位置,需要O(1),总共需要O(n)+O(1)=O(n)

5.tail->next=head

解析: 循环链表尾结点的next会指向头结点

part 2: 编程题

1.字符串插入

#include <iostream>
#include <cstring>
using namespace std;
int main(){char str[200010], substr[100010];int p=0, max_ascii=0, l1, l2;cin >> str >> substr;l1 = (int)strlen(str);l2 = (int)strlen(substr);for(int i=0; i<l1; ++i)if(str[i] > max_ascii){max_ascii = str[i];p = i;}for(int i=l1; i>p; --i)str[i+l2] = str[i];for(int i=p+1, j=0; j<l2; ++i, ++j)str[i] = substr[j];cout << str << endl;return 0;
}

View Code

2.大整数乘法

#include <iostream>
#include <cstring>
using namespace std;
int main(){int a[250]={0}, b[250]={0}, c[500]={0}, la,lb;string na, nb;//输入并倒序储存a和bcin >> na >> nb;la = (int)na.length();lb = (int)nb.length();for(int i=0; i<la; ++i)a[i] = na[la-i-1] - '0';for(int i=0; i<lb; ++i)b[i] = nb[lb-i-1] -'0';for(int i=0; i<la; ++i)//a的从低到高第i位for(int j=0; j<lb; ++j)//b的从低到高第j位c[i+j] += a[i] * b[j];for(int i=0; i<la+lb; ++i){//进位c[i+1] += c[i] / 10;c[i] %= 10;}int rest = c[la+lb]/10, lc = la+lb;while(rest){//进位c[lc] %= 10;c[++lc] = rest;rest = c[lc]/10;}for(; c[lc]==0 && lc; --lc);//找到最高的非零位for(int i=lc; i>=0; --i)cout << c[i];return 0;
}

View Code

3.约瑟夫问题

#include <iostream>
#include <cstring>
using namespace std;
int main(){bool monkey[300]={0};int n, m, cnt=0, cur=1, rest;cin >> n >> m;rest = n;for(int i=1; i<=n; ++i)monkey[i] = 1;while(rest > 1){++cnt;//当前猴子报数if(cnt == m){//出圈,重新开始一轮报数--rest;monkey[cur] = 0;cnt = 0;//cout << cur << endl;
        }++cur;//找到下一只报数的猴子while(monkey[cur] == 0){++cur;if(cur > n)cur = 1;}}cout << cur << endl;return 0;
}

View Code

转载于:https://www.cnblogs.com/tanshiyin-20001111/p/11541893.html

数据结构与算法——慕课作业——第一章 概论 + 第二章 线性表相关推荐

  1. python数据结构题目_《数据结构与算法Python语言描述》习题第二章第三题(python版)...

    ADT Rational: #定义有理数的抽象数据类型 Rational(self, int num, int den) #构造有理数num/den +(self, Rational r2) #求出本 ...

  2. 数据结构与算法python语言描述答案_《数据结构与算法Python语言描述》习题第二章第一题(python版)...

    1 #!/usr/bin/env python 2 #-*- coding:utf-8 -*- 3 4 """ 5 定义一个表示时间的类Time6 a)Time(hour ...

  3. 《数据结构与算法Python语言描述》习题第二章第二题(python版)

    ADT Date: #定义日期对象的抽象数据类型 Date(self, int year, int month, int day) #构造表示year/month/day的对象 difference( ...

  4. 数据结构python语言描述课后答案_《数据结构与算法Python语言描述》习题第二章第三题(python版)...

    1 #!/usr/bib/env python 2 #-*- coding:utf-8 -*- 3 4 """ 5 ADT Rational: #定义有理数的抽象数据类型 ...

  5. 尚硅谷Java数据结构和java算法,韩顺平数据结构和算法课后作业01

    尚硅谷Java数据结构和java算法,韩顺平数据结构和算法课后作业第一题 要求: 1)在前面的基础上,将稀疏数组保存到磁盘上,比如map.data 2) 恢复原来的数组时,读取map.data进行恢复 ...

  6. 数据库系统概论第二章总结

    数据库系统概论第二章总结 文章目录 数据库系统概论第二章总结 第二章 关系数据库 2.1 关系数据结构及形式化定义 2.1.1 关系 2.2 关系操作 2.2.1 基本的关系操作 2.2.2 关系数据 ...

  7. 【连载】大学物理笔记——第一章末+第二章质点动力学

    我是灼灼,一只初学Java的大一金渐层. 向往余秀华和狄兰·托马斯的疯狂,时常沉溺于将情感以诗相寄:追逐过王尔德.王小波的文字,后陷于毛姆和斯蒂芬·金不可自拔:热爱文学的浪潮,白日梦到底却总在现实里清 ...

  8. 【史纲】绪论、第一章、第二章部分 (戊戊维新之前)

    绪论.第一章.第二章部分 (戊戊维新之前)   考点1 :鸦片战争:中国近代史的起点  1.鸦片战争成为中国近代史的起点的原因 :①随着外国资本主义的入侵 ,中国的社会性质开始发生 质的变化 ,中国逐 ...

  9. 叉积 微分 恒等式_考研真题分章解析 | 第二章 导数与微分

    高数思维 导读:本系列专辑为考研真题分章解析,主要包括:函数.极限与连续.一元函数微分学.一元函数积分学.多元函数微分学.多元函数积分学.空间解析几何.级数.微分方程等内容,共计12章,整理了近32年 ...

最新文章

  1. 云边协同 — 协同的类型
  2. 蚂蚁金服 Service Mesh 实践探索
  3. 用户中心 - 修改用户信息
  4. # 遍历删除字典元素_第六章 字典
  5. 详解云计算、大数据和人工智能的区别与联系
  6. Hadoop生态圈-Ambari控制台功能简介
  7. 【开发环境专题一】Maven环境搭建
  8. php 错误提示模板,php 关闭错误提示方法总结与性能分析
  9. 2017河北对口升学计算机试题,2017河北对口升学计算机专业理论试题(含答案).doc...
  10. GML C++ Camera Calibration Toolbox 相机标定畸变矫正
  11. mysqldb 安装包 linux,Linux下Python MySQLdb模块安装过程及错误解决
  12. 你有用过Type-C接口的手电筒吗?
  13. python的tkinter插入图片_Python3 Tkinter基础 Text Photoimage 文本框中插入一张图片
  14. slambook2 ch3 Ubuntu18.04下运行和调试
  15. 基于QT实现的图元拖曳、定点滚轮旋转和缩放
  16. Mybatis方法入参处理
  17. laravel sail
  18. 杰理ac18芯片_AC6905B/AC6905C杰理JL24脚四合一蓝牙芯片
  19. 盛世昊通国际控股成功登陆美国纳斯达克,迈入国际舞台
  20. 68 文本左右对齐

热门文章

  1. MMCM时钟动态调相
  2. App Extension
  3. 程序员如何提高编程时打字速度的5个Tips
  4. java实时获取android网速_Android中获取实时网速(2)
  5. 21天学习之二(Android 10.0 SystemUI默认去掉底部导航栏的三种方法)
  6. python处理doc格式文档
  7. 使用 mongorestore恢复数据以及使用 Studio 3T GUI 管理数据库
  8. [附源码]PHP计算机毕业设计小区水电管理系统(程序+LW)
  9. ubuntu下 vim工具的安装与使用教程(一)
  10. JavaScript在表格中实现九九乘法表