2024数据结构课程设计个人任务
文章平均质量分 58
Juneeeeeeeeeeeee
作业好多
展开
-
【东华大学oj】单线程 CPU
同样在 time = 3 ,CPU 完成任务 0 并开始执行队列中用时最短的任务 2 ,可执行任务项 = {1}- time = 5 ,CPU 完成任务 2 并开始执行队列中用时最短的任务 3 ,可执行任务项 = {1}- time = 9 ,CPU 完成任务 4 并开始执行任务 3 ,可执行任务项 = {0,1,2}- time = 13 ,CPU 完成任务 3 并开始执行任务 2 ,可执行任务项 = {0,1}- time = 3 ,任务 2 进入任务队列,可执行任务项 = {1, 2}原创 2024-07-09 12:14:59 · 902 阅读 · 0 评论 -
【东华大学oj】LRU缓存
/ 该操作会使得关键字 2 作废(在关键字1和2中,2是最久未被使用的),缓存是 {1=1, 3=3}int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1。// 该操作会使得关键字 1 作废,缓存是 {4=4, 3=3}lRUCache.put(2, 2);// 缓存是 {1=1, 2=2}// 返回 -1 (未找到)// 返回 -1 (未找到)lRUCache.put(1, 1);原创 2024-07-09 12:14:12 · 419 阅读 · 0 评论 -
【东华大学oj】完成一半题目
主办方提供了 2*N 道题目,整型数组 questions 中每个数字对应了每道题目所涉及的知识点类型。3位选择完成知识点类型为 3 的题目,3位选择完成知识点类型为 5 的题目,因此至少包含 2 种知识点类型。可选择完成知识点类型为 2 的题目时,此时仅一种知识点类型,因此至少包含 1 种知识点类型。第一行为一个整数n代表数组questions的长度,n=2*N,N为扣友的数量。解释:共有 6 位扣友,在 12 道题目中选择题目,需要选择 6 题。解释:共有 2 位扣友,在 4 道题目中选择 2 题。原创 2024-07-09 12:13:32 · 278 阅读 · 0 评论 -
【东华大学oj】无人机方阵
给定两个大小均为 N*M 的二维数组 source 和 target 表示无人机方阵表演的两种颜色图案,由于无人机切换灯光颜色的耗能很大,请返回从 source 到 target 最少需要多少架无人机切换灯光颜色。将 [1,1] 处的无人机移动至 [1,0] 处,其灯光颜色切换为颜色编号为 6 的灯光;注意: 调整无人机的位置布局时无人机的位置可以随意变动。将 [0,1] 处的无人机移动至 [0,0] 处;将 [0,0] 处的无人机移动至 [0,1] 处;将 [1,0] 处的无人机移动至 [1,1] 处;原创 2024-07-09 12:12:29 · 254 阅读 · 0 评论 -
【东华大学oj】快速排序的应用
提示:要求重排n个元素且以顺序存储结构存储的线性表,使得所有值为负数的元素移到正数元素的前面。因此枢轴元素的值为0(不是线性表中的元素)。基本思路是,先设置好上、下界和枢轴值(0),然后执行一趟快速排序,即利用震荡交替法分别从线性表的两端查找正数和负数,找到后互相交换,直到上下界相遇。在使用顺序表ADT的基础上,试设计基于快速排序的思想把所有值为负数的元素移到全部正数值元素前边的算法:例:(x,-x,-x,x,x,-x,x)变为(-x,-x,-x,x,x,x)。第一行:排序前的顺序表遍历结果。原创 2024-07-09 12:11:50 · 133 阅读 · 0 评论 -
【东华大学oj】油管铺设
八口海上油井相互间距离如下表所示(样例1数据)。其中1号井离海边距离最近,为5.6海里。现计划从海岸铺设油管将各油井连接起来,如何设计才能使得油管的长度最短。(为便于检修,油管只允许在油井处分叉)。基于最小生成树思想解决实际问题。第九行:1号井距离海边的距离。第八行:起始结点序号u。第一行:油管最短长度。原创 2024-07-09 12:11:15 · 294 阅读 · 0 评论 -
【东华大学oj】获取AOE网的关键路径
(2)根据各个顶点的Ve和Vl值,在求得每条弧s的最早开始时间e[s]和最迟开始时间l[s]后,若某条弧满足条件e[s]=l[s],该弧所对应的活动即为关键活动。//获取AOE网各顶点事件的最早发生时间ve和最迟发生时间vl、活动ak的最早开始时间e和最迟开始时间l、一条关键路径。(3)关键路径:由关键活动所形成的从源点到汇点的每一条路径(注意:关键路径可能有多条)。(1)关键活动:开始时间余量为0的活动。<弧尾,弧头> e[k] l[k](列与列之间用格式控制符'\t'分隔)提示:在AOE网中,原创 2024-07-09 12:09:20 · 653 阅读 · 0 评论 -
【东华大学oj】找出从指定结点出发且长度为m的所有简单路径
4)调用FindPath函数时要指出从哪一个结点出发,而递归的FingPath函数的参数是起点的序号。如果长度已达到m,则输出这条路径,并将最后一个结点从路径上删除,返回上一层调用,检查是否还有其它的途径;第4个参数是当前路径中的结点数,当前路径的长度是结点数减1;在使用图的邻接表ADT的基础上,设计一个算法,按照深度优先搜索的思想找出从指定结点出发且长度为m的所有简单路径。1)要找的是长度为m的简单路径,因此路径上不能有相同的结点,于是定义了一个数组visited记录结点是否在路径上。原创 2024-07-09 12:08:29 · 788 阅读 · 0 评论 -
【东华大学oj】堆排序
第一行:顺序表A的数据元素的数据类型标记(0:int,1:double,2:char,3:string)对于顺序存储的线性表,使用vector或数组,实现堆排序算法,并输出每趟的排序结果。第三行:待排序顺序表A的数据元素(数据元素之间以空格分隔)第一行:第一趟的排序结果(数据元素之间以","分隔)第三行:第二趟的排序结果(数据元素之间以","分隔)第n行:最终的排序结果(数据元素之间以","分隔)第二行:堆类型标记(1:大根堆,2:小根堆)(2)//堆调整(最大堆)(2)//堆调整(最小堆)原创 2024-07-09 12:07:38 · 267 阅读 · 0 评论 -
【东华大学oj】希尔排序
第一行:顺序表A的数据元素的数据类型标记(0:int,1:double,2:char,3:string)对于顺序存储的线性表,使用vector或数组,实现希尔排序算法,并输出每趟的排序结果。第二行:待排序顺序表A的数据元素(数据元素之间以空格分隔)第二行:第一趟的排序结果(数据元素之间用","分隔)第n行:最终的排序结果(数据元素之间用","分隔)第四行:希尔排序每趟的步长(步长之间以空格分隔)(1)//希尔排序(主函数)(2)//希尔排序(一趟)第n-1行:第n趟的步长,第一行:第一趟的步长,原创 2024-07-09 12:06:26 · 175 阅读 · 0 评论 -
【东华大学oj】判断给定的二叉树是否是二叉排序树
在二叉树的二叉链表存储形式建立的基础上,使用递归的程序设计方法,设计并完成判断一棵给定的二叉树是否是二叉排序树的算法。//重写遍历的visit函数,将遍历结果依次存放在顺序表A中(为避免连锁改动,将函数名由visit改为visit1)(4)递归遍历,左孩子的key比根节点的key小,右孩子的key比根节点的key大,一旦有不满足条件的就判定不是。(1)若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值;//判断是否是二叉排序树。原创 2024-07-09 12:05:51 · 550 阅读 · 0 评论 -
【东华大学oj】AVL树的判断
(3)使用任意的遍历方式对该二叉树进行遍历(测试数据使用非递归的后序遍历得到,参考个人任务12),在visit函数中计算访问的结点的平衡因子。参照个人任务13,但要稍作修改(不要通过数据元素的值,而是直接通过遍历到的结点地址来定位)。(1)若一棵二叉排序树中每个结点的左、右子树的深度之差(平衡因子)的绝对值不超过1,则称这样的二叉树为平衡二叉树(AVL树)。(4)如有结点的平衡因子的绝对值超过1,则可给出false;(如遇到结点的平衡因子不在范围内,在下一行显示false,终止)(1)判断是否是AVL树。原创 2024-07-09 12:05:04 · 490 阅读 · 0 评论 -
【东华大学oj】判断单链表的对称性
设带头结点的单链表的头指针为head,结点结构由data和next两个域构成,其中data域为字符型。在使用单链表ADT的基础上,设计一算法判断该链表的前n个字符是否中心对称。第一行:顺序表A的数据元素的数据类型标记(0:int,1:double,2:char,3:string)注意:单链表A中的元素个数可能小于n,也可能大于n。如果元素个数小于n,则判断整个单链表是否对称。第一行:单链表A的遍历结果(数据元素之间以"->"分隔)第三行:单链表A的数据元素(数据元素之间以空格分隔)第三行:true(对称)原创 2024-07-09 12:04:10 · 350 阅读 · 0 评论 -
【东华大学oj】操作系统任务调度问题
其中,系统任务的优先级 < 50,用户任务的优先级 >= 50且 <= 255。现有一任务序列task(顺序存储),任务数为n。算法scheduler实现如下功能,将task中的任务按照系统任务、用户任务依次存放到队列 system_task和 user_task中(队列中元素的值是任务在顺序表task中对应的下标),并且优先级高的任务排在前面。优先级相同的任务按照在task中的相对顺序入队排列(即task序列中在先的任务排在前面)。第一行:任务序列task中各个任务的优先级(任务优先级之间以空格分隔)原创 2024-07-09 12:03:07 · 369 阅读 · 0 评论 -
【东华大学oj】顺序表元素的快速删除
已知线性表A采用顺序存储结构,请设计一时间复杂度为0(n)、空间复杂度为0(1)的算法,该算法删除线性表中所有值为item的数据元素。要求:线性表元素个数n很大,而值为item的数据元素个数很少,要求移动元素个数尽量少;提示:算法参照快速排序的思想,使用两个指针,分别从左往右扫描找到需要被删除的元素、从右往左扫描找到不被删除的元素,然后交换。//删除线性表中所有值为item的数据元素,时间复杂度为0(n)、空间复杂度为0(1)第一行:顺序表A的数据元素(数据元素之间以空格分隔)第二行:待删除数据元素。原创 2024-07-09 12:01:58 · 186 阅读 · 0 评论