自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(48)
  • 收藏
  • 关注

原创 W13(Graph)

7-1 列出连通集分数 20全屏浏览题目切换布局作者 陈越单位 浙江大学给定一个有N个顶点和E条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N−1编号。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。

2022-12-18 01:51:17 878 1

原创 W11(Union)

7-1 部落分数 25全屏浏览题目切换布局作者 陈越单位 浙江大学在一个社区里,每个人都有自己的小圈子,还可能同时属于很多不同的朋友圈。我们认为朋友的朋友都算在一个部落里,于是要请你统计一下,在一个给定社区中,到底有多少个互不相交的部落?并且检查任意两个人是否属于同一个部落。

2022-12-18 01:45:29 535

原创 W10(Heap)

7-1 Windows消息队列分数 25全屏浏览题目切换布局作者 DS课程组单位 浙江大学消息队列是Windows系统的基础。对于每个进程,系统维护一个消息队列。如果在进程中有特定事件发生,如点击鼠标、文字改变等,系统将把这个消息加到队列当中。同时,如果队列不是空的,这一进程循环地从队列中按照优先级获取消息。请注意优先级值低意味着优先级高。请编辑程序模拟消息队列,将消息加到队列中以及从队列中获取消息。

2022-12-18 01:31:39 506

原创 W9(Hash)

7-1 电话聊天狂人分数 25全屏浏览题目切换布局作者 DS课程组单位 浙江大学给定大量手机用户通话记录,找出其中通话次数最多的聊天狂人。

2022-12-18 01:20:22 382

原创 W8(BST,AVL,etc.)

7-1 是否同一棵二叉搜索树分数 25全屏浏览题目切换布局作者 陈越单位 浙江大学给定一个插入序列就可以唯一确定一棵二叉搜索树。然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到。例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果。于是对于输入的各种插入序列,你需要判断它们是否能生成一样的二叉搜索树。

2022-12-18 01:13:10 283

原创 w7 Tree&Binary Tree

7-1 病毒溯源分数 25全屏浏览题目切换布局作者 陈越单位 浙江大学病毒容易发生变异。某种病毒可以通过突变产生若干变异的毒株,而这些变异的病毒又可能被诱发突变产生第二代变异,如此继续不断变化。现给定一些病毒之间的变异关系,要求你找出其中最长的一条变异链。在此假设给出的变异都是由突变引起的,不考虑复杂的基因重组变异问题 —— 即每一种病毒都是由唯一的一种病毒突变而来,并且不存在循环变异的情况。

2022-12-18 01:06:21 113

原创 w5 排序

7-1 统计工龄分数 25全屏浏览题目切换布局作者 陈越单位 浙江大学给定公司N名员工的工龄,要求按工龄增序输出每个工龄段有多少员工。

2022-12-18 00:01:51 413

原创 w4 队列

7-1 银行排队问题之单窗口“夹塞”版分数 25全屏浏览题目切换布局作者 DS课程组单位 浙江大学排队“夹塞”是引起大家强烈不满的行为,但是这种现象时常存在。在银行的单窗口排队问题中,假设银行只有1个窗口提供服务,所有顾客按到达时间排成一条长龙。当窗口空闲时,下一位顾客即去该窗口处理事务。此时如果已知第i位顾客与排在后面的第j位顾客是好朋友,并且愿意替朋友办理事务的话,那么第i位顾客的事务处理时间就是自己的事务加朋友的事务所耗时间的总和。在这种情况下,顾客的等待时间就可能被影响。

2022-12-17 23:46:56 449

原创 w3 下推式堆栈

7-1 汉诺塔的非递归实现分数 25全屏浏览题目切换布局作者 DS课程组单位 浙江大学借助堆栈以非递归(循环)方式求解汉诺塔的问题(n, a, b, c),即将N个盘子从起始柱(标记为“a”)通过借助柱(标记为“b”)移动到目标柱(标记为“c”),并保证每个移动符合汉诺塔问题的要求。

2022-12-17 23:40:45 317

原创 w2 线性表

7-1 两个有序序列的中位数作者 DS课程组单位 浙江大学已知有两个等长的非降序序列S1, S2, 设计函数求S1与S2并集的中位数。有序序列A0​,A1​,⋯,AN−1​的中位数指A(N−1)/2​的值,即第⌊(N+1)/2⌋个数(A0​为第1个数)。

2022-12-17 23:35:00 274

原创 DS_DAG

1-1分数 10作者 周强单位 青岛大学若图G为连通图且不存在拓扑排序序列,则图G必有环。T若图G有环,则G不存在拓扑排序序列。若图G为连通图且不存在拓扑排序序列,则图G必有环分数 10作者 魏宝刚单位 浙江大学如果从有向图 G 的每一点均能通过深度优先搜索遍历到所有其它顶点,那么该图一定不存在拓扑序列。T如果从有向图G的每一点均能通过深度优先搜索遍历到所有其它顶点,则该图是一个有环图;而拓扑排序的前提是有向无环图;分数 5作者 DS课程组单位 浙江大学。

2022-12-02 19:25:49 2097

原创 DS_ShortestPath

1-1分数 5作者 陈越单位 浙江大学在一个有权无向图中,若b到a的最短路径距离是12,且c到b之间存在一条权为2的边,则c到a的最短路径距离一定不小于10。T分数 5作者 陈越单位 浙江大学P 是顶点 S 到 T 的最短路径,如果该图中的所有路径的权值都加 1,P 仍然是 S 到 T 的最短路径。F假如说最短路径上一共有10条边,而另一条路径虽然比最短路径长,但它只有一条边,如果全加1,就会导致边少的路径成为新的最短路径。分数 5作者 DS课程组单位 浙江大学。

2022-11-27 14:27:23 1518

原创 DS_SpanningTree

1-1分数 5作者 陈越单位 浙江大学Kruskal 算法是维护一个森林,每一步把两棵树合并成一棵。T分数 5作者 陈越单位 浙江大学Prim 算法是通过每步添加一条边及其相连的顶点到一棵树,从而逐步生成最小生成树。T分数 5作者 陈越单位 浙江大学对于带权无向图 G = (V, E),M 是 G 的最小生成树,则 M 中任意两点 V1 到 V2 的路径一定是它们之间的最短路径。F分数 5作者 魏宝刚单位 浙江大学。

2022-11-27 10:08:42 482

原创 DS_BFS&DFS

1-1分数5作者DS课程组单位浙江大学如果无向图G必须进行两次广度优先搜索才能访问其所有顶点,则G中一定有回路。F1-2分数5作者DS课程组单位浙江大学如果无向图G必须进行两次广度优先搜索才能访问其所有顶点,则G一定有2个连通分量。T2-1分数4作者DS课程组单位浙江大学下列说法不正确的是:A.图的遍历是从给定的源点出发每一个顶点仅被访问一次B.遍历的基本算法有两种:深度遍历和广度遍历C.图的深度遍历是一个递归过程

2022-11-25 10:57:56 952

原创 DS_Graph

1-1分数 3作者 DS课程组单位 浙江大学无向连通图所有顶点的度之和为偶数。T顶点的度为顶点所连接的边的个数,无向连通图中的顶点的度之和 为边数*2所以顶点的度之和为偶数分数 3作者 DS课程组单位 浙江大学无向连通图边数一定大于顶点个数减1。F很显然边数可以等于顶点个数 >=分数 3作者 DS课程组单位 浙江大学无向连通图至少有一个顶点的度为1。F在顶点数n≥3的完全有向图中,没有度为1的节点,并且边数与顶点数的差要大于等于0分数 3作者 DS课程组单位 浙江大学。

2022-11-12 23:21:00 1556

原创 DS_Union

1-1分数 10作者 DS课程组单位 浙江大学在并查集问题中,已知集合元素0~8所以对应的父结点编号值分别是{ 1, -4, 1, 1, -3, 4, 4, 8, -2 }(注:−n表示树根且对应集合大小为n),那么将元素6和8所在的集合合并(要求必须将小集合并到大集合)后,该集合对应的树根和父结点编号值分别是多少?A.1和-6B.4和-5C.8和-5D.8和-6解析:依据题意,可以知道森林中有3颗树,分别以1, 4, 8为根结点;6 的父结点是 4,因此就是根结点为4和8的两颗树合并;

2022-11-11 17:32:13 1263

原创 DS_Heap

1-1分数 5作者 DS课程组单位 浙江大学任何最小堆的前序遍历结果是有序的(从小到大)。F分数 5作者 DS课程组单位 浙江大学任何最小堆中从根结点到任一叶结点路径上的所有结点是有序的(从小到大)。T分数 5作者 冯雁单位 浙江大学在有N个元素的最大堆中,随机访问任意键值的操作可以在O(logN)时间完成。F堆的左右孩子没有固定的顺序,无法像平衡二叉树那样顺着找下去。2-1堆的形状是一棵:A.二叉搜索树B.满二叉树C.非二叉树D.完全二叉树分数 5。

2022-11-08 22:07:02 1176

原创 DS_Hash

1-1若用平方探测法解决冲突,则插入新元素时,若散列表容量为质数,插入就一定可以成功。F可能会超出表容量,插入失败。平方探测法是一种较好的处理冲突的方法,可以避免出现“堆积”问题,它的缺点是不能探测到散列表上的所有单元,但至少能探测到一半单元在散列中,函数“插入”和“查找”具有同样的时间复杂度。T插入和查找具有同样的时间复杂度O(1)。即使把2个元素散列到有100个单元的表中,仍然有可能发生冲突。T将 10 个元素散列到 100 000 个单元的哈希表中,一定不会产生冲突。F。

2022-10-29 15:31:06 3862 1

原创 DS_Huffman

1-1分数 10作者 DS课程组单位 浙江大学对N(≥2)个权值均不相同的字符构造哈夫曼树,则树中任一非叶结点的权值一定不小于下一层任一结点的权值。T分数 10作者 徐镜春单位 浙江大学哈夫曼编码是一种最优的前缀码。对一个给定的字符集及其字符频率,其哈夫曼编码不一定是唯一的,但是每个字符的哈夫曼码的一定是唯一的。F哈夫曼字符的频率相同时每个字符的码长不是确定的。分数 10作者 李祥单位 湖北经济学院关于哈夫曼树哈夫曼树中一定没有度为 1 的结点。T分数 10。

2022-10-27 22:58:37 4142

原创 DS_BST

其中BinTree};函数IsBST须判断给定的T是否二叉搜索树,即满足如下定义的二叉树:定义:一个二叉搜索树是一棵二叉树,它可以为空。非空左子树的所有键值小于其根结点的键值。非空右子树的所有键值大于其根结点的键值。左、右子树都是二叉搜索树。如果T是二叉搜索树,则函数返回true,否则返回false。

2022-10-16 11:04:30 2598

原创 DS_Tree

1-1对于一个有N个结点、K条边的森林,不能确定它共有几棵树。F[解析]设边的数目 EdgeNum, 树的数目为 TreeNum根据 NodeNum - 1 = EdgeNum所以 (NodeNum1 - 1) + … + (NodeNumi - 1) = K即 N - TreeNum = K1-2树是表示多对多关系的数据结构。F1-3从树的根结点到任何一个叶结点都有唯一的一条线性表。F1-4一棵树中位于同一层上的结点称为兄弟结点。F1-5一棵树中,某结点位置上方各层中的所有结点都是该结点的祖先。F2

2022-10-15 11:45:37 2487

原创 DS_Sorting(Mergesort, bucket, radix, etc.)

1-1对N个记录进行归并排序,归并趟数的数量级是O(NlogN)。T仅基于比较的算法能得到的最好的“最坏时间复杂度”是O(NlogN)。T分数 5作者 DS课程组单位 浙江大学对N个记录进行归并排序,空间复杂度为:A.O(logN)B.O(N)C.O(NlogN)D.O(N2)分数 5作者 考研真题单位 浙江大学使用二路归并排序对含 n 个元素的数组 M 进行排序时,二路归并操作的功能是:A.将两个有序表合并为一个新的有序表。

2022-10-03 19:20:15 977

原创 DS_QuickSort

1-1对N个记录进行快速排序,在最坏的情况下,其时间复杂度是O(NlogN)。T1-2采用递归方式对顺序表进行快速排序,每次划分后,先处理较短的分区可以减少递归次数。

2022-09-28 18:59:27 859 1

原创 DS_Sorting(Bubble, Insertion, etc.)

对初始数据序列{ 8, 3, 9, 11, 2, 1, 4, 7, 5, 10, 6 }进行希尔排序。本题要求给出希尔排序对给定初始序列{9, 8, 7, 6, 5, 4, 3, 2, 1}利用增量序列{1, 3, 7}进行排序的分步结果。给定初始待排序列{ 15,9,7,8,20,-1,4 }。对于序列{ 49,38,65,97,76,13,27,50 },按由小到大进行排序,下面哪一个是初始步长为4的希尔排序法第一趟的结果?对N个记录进行简单选择排序,比较次数和移动次数分别为O(N2)和O(N)。

2022-09-24 16:27:36 638

原创 DS_Queue

其中Queue/* 存储元素的数组 *//* 队列的头指针 */int Count;/* 队列中元素个数 *//* 队列最大容量 */};注意:如果队列已满,AddQ函数必须输出“Queue Full”并且返回false;如果队列是空的,则DeleteQ函数必须输出“Queue Empty”,并且返回ERROR。/* 存储元素的数组 *//* 队列的头、尾指针 *//* 队列最大容量 */};其中Deque/* 存储元素的数组 *//* 队列的头、尾指针 */

2022-09-21 23:22:22 1345

原创 DS_Stack

其中Tag是堆栈编号,取1或2;MaxSize堆栈数组的规模;Stack{};注意:如果堆栈已满,Push函数必须输出“Stack Full”并且返回false;如果某堆栈是空的,则Pop函数必须输出“Stack Tag Empty”(其中Tag是该堆栈的编号),并且返回ERROR。

2022-09-17 18:01:34 1480

原创 DS_LinkedList

已知指针ha和hb分别是两个单链表的头指针,下列算法将这两个链表首尾相连在一起,并形成一个循环链表(即ha的最后一个结点链接hb的第一个结点,hb的最后一个结点指向ha),返回ha作为该循环链表的头指针。在具有N个结点的单链表中,访问结点和增加结点的时间复杂度分别对应为O(1)和O(N)。对于一个具有N个结点的单链表,在给定值为x的结点后插入一个新结点的时间复杂度为。在具有N个结点的单链表中,实现下列哪个操作,其算法的时间复杂度是O(N)?若用链表来表示一个线性表,则表中元素的地址一定是连续的。

2022-09-16 15:55:05 1423

原创 DS_SequenceLIst

其中List/* 保存线性表中最后一个元素的位置 */};L是用户传入的一个线性表,其中元素可以通过>、==、

2022-09-11 10:02:25 1049

原创 DS_Complexity

斐波那契数列FN​的定义为:F0​=0, F1​=1, FN​=FN−1​+FN−2​, N=2, 3, …斐波那契数列FN​的定义为:F0​=0, F1​=1, FN​=FN−1​+FN−2​, N=2, 3, …给定程序时间复杂度的递推公式:T(1)=1,T(N)=2T(N/2)+N。空间复杂度是根据算法写成的程序在执行时占用存储单元的长度,往往与输入数据的规模有关。T(n)表示当输入规模为n时的算法效率,以下算法中效率最优的是( )。与数据元素本身的形式、内容、相对位置、个数无关的是数据的( )。

2022-09-11 09:56:33 1701

原创 课后练习8、输入输出

使用提取符(

2022-06-11 15:15:53 594

原创 第七周多态编程

7-1 马会飞已知Horse类是Pegasus类的父类,根据以下主函数完善程序内容,以实现规定的输出。不允许改变主函数的内容。输入格式:无根据样例格式输出。在这里给出一组输入。例如:输出样例:在这里给出相应的输出。例如: 7-2 动物爱吃什么1.设计一个基类动物类(animal),包含private数据成员:动物编号int num;和动物名称string name;public成员函数:getnum( )用于获取其编号, getname( )用于获取其名称和一个纯虚函数eat

2022-06-03 16:07:34 218

原创 课后练习7、多态(函数)

6-1 抽象类Shape请编写一个抽象类Shape,包括两个纯虚函数,分别为计算面积getArea()和计算周长getPerim()。通过Shape类派生出矩形类Rectangle和圆类Circle,并计算各自的面积和周长。测试用例具体要求:输入1表示测试矩形类,之后输入矩形长和宽。输入2表示测试圆类,之后输入圆半径。裁判测试程序样例:输入样例1:在这里给出一组输入。例如:输出样例1:在这里给出相应的输出。例如:输入样例2:在这里给出一组输入。例如:输出样例2:

2022-06-02 20:34:02 561

原创 课后练习7、多态(选填)

2-1虚析构函数的作用是。A.虚基类必须定义虚析构函数B.类对象作用域结束时释放资源C.delete动态对象时释放资源D.无意义2-2若一个类中含有纯虚函数,则该类称为。A.基类B.纯基类C.抽象类D.派生类2-3以下说法中正确的是()A.在虚函数中不能使用this指针B.在构造函数中调用虚函数不是动态联编C.抽象类的成员函数都是纯虚函数D.构造函数和析构函数都不能是虚函数2-4(2018final) 关于虚函数的描述中,( )是正确的。A.虚函数是一个 static 类型的成员函数B.虚函数是一个非成员函

2022-06-01 12:11:26 356

原创 课后练习6、继承(编程)

7-1 定义基类Point和派生类Circle,求圆的周长.定义基类Point(点)和派生类Circle(圆),求圆的周长。Point类有两个私有的数据成员float x,y;Circle类新增一个私有的数据成员半径float r和一个公有的求周长的函数getCircumference();主函数已经给出,请编写Point和Circle类。#include <iostream>#include<iomanip>using namespace std;//请编写你的代码

2022-05-28 12:33:36 167

原创 课后练习6、继承(填空)(函数)

4-1写出下面程序的输出结果#include <iostream>using namespace std;class B{public: B(){cout<<"B_Con"<<endl;} ~B(){cout<<"B_Des"<<endl;}};class C:public B{public : C(){cout<<"C_Con"<<endl;} ~C(){cout&lt

2022-05-25 18:20:29 144

原创 课后练习6、继承(选择题)

2-1下列关于类的继承描述中,( )是正确的。A.派生类公有继承基类时,可以访问基类的所有数据成员,调用所有成员函数。B.派生类也是基类,所以它们是等价的。C.派生类对象不会建立基类的私有数据成员,所以不能访问基类的私有数据成员。D.一个基类可以有多个派生类,一个派生类可以有多个基类。2-2在c++中,类之间的继承关系具有( )。A.自反性B.对称性C.传递性D.反对称性2-3(2018final) 下面描述中,表达错误的是( )。A.公用继承时基类中

2022-05-25 11:23:17 657

原创 课后练习5、运算符重载(编程)

7-1 复数的比较题目描述:建立一个复数类,实数和虚数是其私有数据成员。建立一个>(大于号)的运算符重载,比较两个复数间模的大小。输入格式:测试输入包含若干测试用例,每个测试用例占一行。每个测试用例包括四个数字,前两个数字分别表示第一个复数的实部和虚部,第三个和第四个数字分别表示第二个复数的实部和虚部。每个数字之间用空格间隔。当读入一个测试用例是0 0 0 0时输入结束,相应的结果不要输出。输出格式:对每个测试用例输出一行。当第一个复数的模大于第二个复数的模时,输出 true ,当第一个复

2022-05-24 23:19:53 331

原创 课后练习5、运算符重载(函数)

6-1 大整数求和(运算符重载)BigInt类表示不超过100位的无符号大整数。试重载>>,<<和+,以支持无符号大整数的输入、输出与求和(假设结果仍是一个不超过100位的无符号大整数)。重载面向BigInt类对象的运算符:>> << + 裁判测试程序样例:#include <iostream>#include <string>using namespace std;/* 请在这里填写答案 */int

2022-05-21 19:27:04 333

转载 课后练习4、友元模板(函数题)

6-2 输出最大值根据给定的程序,写成相关的成员函数,完成指定功能。函数接口定义:定义max函数,实现输出最高成绩对应的学号以及最高成绩值。 裁判测试程序样例:#include <iostream>using namespace std;class Student {public: Student(int n,float s):num(n),score(s){} int num; float score; };int main(){Stude

2022-05-19 12:55:57 160

原创 课后练习4、友元模板(编程)

7-1 友元很简单2016finalC++考试正在进行。请设计一个学生类student,学号、本次考试成绩是其私有数据成员,同时有一个求本次考试成绩最高分的学生的友元函数 student* average(student *p,int count)以上类名和友元函数的形式,均须按照题目要求,不得修改。输入格式:输入是 学号([00001,99999])和成绩,以0结束。(不超过100个学生)输出格式:输出是最高分学生的 学号 。 提示:如果是并列最高分,需要将并列最高分学生的学号都输

2022-05-19 11:14:29 832

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除