考研
文章平均质量分 63
柒-寒
悟已往之不谏,觉今是而昨非。实迷途其未远,知来者之可追。
展开
-
考研真题数据结构
此算法需要遍历所有顶点和边,并且使用优先队列来选择当前最短距离的顶点,所以主要时间消耗在队列的操作上。算法的基本思想是从源点开始,逐步扩展周围的顶点,通过比较选择最短路径来更新当前顶点到其他顶点的距离。- 如果通过顶点u到达顶点v的路径长度更短,更新顶点v的最短距离为新的路径长度。3. 创建一个优先队列(优先级队列),将源点加入队列,并将源点的最短距离设为0。5. 当队列为空时,dist数组中存储的就是源点到所有顶点的最短距离。2. 将源点的最短距离初始化为0,其他顶点的最短距离初始化为无穷大。原创 2023-12-15 17:16:17 · 777 阅读 · 0 评论 -
考研真题c语言
在上述代码中,我们通过遍历学生数组,比较每个学生的三门课的最高分数,找到最高分数并记录其对应的学号。最后,我们输出最高分数对应的学号和成绩。3. 在 `main` 函数中创建一个包含10个学生的数组,并调用 `findMaxScore` 函数来找到最高分数的学号和成绩。【2016年山西大学考研真题】输入10个学生三门课的成绩,用函数实现:找出最高的分数所对应的学号和成绩。2. 编写一个函数 `findMaxScore`,该函数通过遍历学生数组来找到最高分数对应的学号和成绩。// 填写剩余学生的信息。原创 2023-12-13 17:22:07 · 922 阅读 · 1 评论 -
考研真题C语言
在上述代码中,我们定义了两个函数 `gcd` 和 `lcm` 来求最大公约数和最小公倍数。算法的时间复杂度依赖于辗转相除法的递归次数,它是 O(log(min(m, n)))。- 然后,最小公倍数 LCM(m, n) = m * n / GCD(m, n)。printf("最大公约数:%d\n", gcdResult);printf("最小公倍数:%d\n", lcmResult);- 否则,GCD(m, n) = GCD(n, m % n)。- 如果 n 等于 0,则 GCD(m, n) = m;原创 2023-12-12 17:26:29 · 302 阅读 · 0 评论 -
考研真题C语言
在上述代码中,我们定义了 `countCharacters` 函数来统计输入字符串中的每种字符类型的个数。(3)算法的时间复杂度是 O(n),其中 n 是输入字符串的长度。2. 判断字符的类型,根据字符的ASCII码范围来判断是否为英文字母、数字、空格或其他字符。printf("英文字母个数:%d\n", letters);printf("其他字符个数:%d\n", others);printf("空格个数:%d\n", spaces);printf("数字个数:%d\n", digits);原创 2023-12-11 21:02:25 · 667 阅读 · 0 评论 -
考研真题数据结构
然后,我们通过遍历链表A、B和C,使用插入和删除操作来实现集合操作 A = (B-C) ∪ A。(3)我们的算法需要对链表A、B和C进行遍历,时间复杂度为 O(n),其中 n 是链表的长度。2. 对于链表A中的每个节点,判断是否在链表B中出现,并且不在链表C中出现。- 如果节点在B中出现且不在C中出现,将该节点从链表A中删除。3. 将链表B中的节点插入到链表A中,并保持链表A的递增有序性。// 实现集合操作 A = (B-C) ∪ A。// 将B中剩余的节点插入到A中。// 删除链表A中的节点。原创 2023-12-11 20:45:27 · 551 阅读 · 0 评论 -
考研真题数据结构
在上述代码中,我们首先定义了一个 `Node` 结构体来表示邻接表中的节点,以及一个 `Graph` 结构体来表示图。然后,我们实现了创建图、添加边和统计图中所有顶点度的函数。(3)算法的时间复杂度是 O(V+E),其中 V 是顶点数,E 是边数。【2021山西大学考研真题】设计一个算法,统计一个采用邻接表存储的具有n个顶点的无向无权图。2. 对于每个顶点,遍历其邻接表,统计其邻接点的个数即为该顶点的度。// 添加从dest到src的边(无向图)1. 遍历图中的所有顶点,统计每个顶点的度。原创 2023-12-10 19:09:42 · 465 阅读 · 0 评论 -
考研真题数据结构
然后,我们使用插入排序的思想对链表中的奇数位序子链表和偶数位序子链表分别进行排序。最后,我们使用合并两个有序链表的方法将两个排序好的子链表合并为一个有序链表。2. 遍历链表,找到链表的中间节点,并将链表划分为两个子链表,一个子链表包含奇数位序的节点,另一个子链表包含偶数位序的节点。(3)我们的算法需要对链表进行遍历和插入操作,时间复杂度为 O(n^2),其中 n 是链表的长度。O(1)且时间上尽可能高效的算法,将链表中的元素按从小到大的顺序排序。// 找到当前节点在排好序的子链表中的位置,插入该位置。原创 2023-12-09 17:24:09 · 829 阅读 · 0 评论 -
考研真题数据结构
然后,我们编写了一个递归函数 `mirrorBinaryTree`,用于实现二叉树节点交换的操作。通过递归调用,我们可以将二叉树中所有非叶节点的左右子树交换位置,并得到镜像二叉树。在 `main` 函数中,我们创建了一个测试用例,并分别输出原二叉树和镜像二叉树的结果。(1)设计一个算法,将二叉树中所有非叶节点的左右子树交换位置,从而得到原二叉树的镜像二叉树。(3)算法的时间复杂度是 O(n),其中 n 是二叉树中的节点数。算法的空间复杂度是 O(h),其中 h 是二叉树的高度。(1)给出算法的基本思想;原创 2023-12-08 20:35:33 · 710 阅读 · 0 评论 -
考研真题数据结构
(3)在上述代码中,我们首先创建了一个 `appeared` 数组来记录出现过的绝对值。在处理每个节点时,我们根据节点数据的绝对值在 `appeared` 数组中的值来判断节点是否重复出现,并进行删除操作。- 如果该节点的数据绝对值在 `appeared` 数组中对应的位置上为0,则将该位置的元素设置为1,表示该绝对值已经出现过。(4)算法的时间复杂度为 O(n),其中 n 是链表中的节点个数。- 如果该节点的数据绝对值在 `appeared` 数组中对应的位置上不为0,则将这个节点从链表中删除。原创 2023-12-07 21:11:36 · 694 阅读 · 0 评论 -
考研真题数据结构
(2)在上述代码中,我们首先判断根节点是否为空,如果为空,则返回一个足够小的值(这里使用INT_MIN)。最后,比较根节点的关键字值和左、右子树的最大关键字值,返回最大值。基本思想是比较根节点的关键字值和左子树、右子树的最大关键字值,然后返回最大值。(3)算法的时间复杂度是 O(n),其中 n 是二叉树的节点数量。因此,该算法的时间复杂度是线性的,与二叉树的规模成正比。【2020年山西大学真题】二叉树存储形式为(lchild,data,rchild),给出求二叉树的最大关键字。(1)给出算法的基本思想;原创 2023-12-06 22:07:17 · 303 阅读 · 0 评论 -
考研真题数据结构
在上述代码中,首先定义了二叉树结点的数据结构 `TreeNode`,以及创建新结点 `createNode` 的函数。然后定义了递归函数 `getTreeDepth`,根据设计思想实现了求二叉树深度的算法。在二叉树的深度求解算法中,每个结点都只会被访问一次,所以该算法的时间复杂度为 O(n),其中 n 是二叉树中的结点个数。3. 如果树不为空,则树的深度等于其左子树和右子树深度的较大值加1。printf("二叉树的深度为:%d\n", depth);// 树为空,深度为0。// 定义二叉树结点的数据结构。原创 2023-12-05 22:20:57 · 390 阅读 · 0 评论 -
考研真题数据结构
在 `main` 函数中,通过调用 `findMinElement` 函数,找到数组中的最小元素,并打印出来。3. 如果遍历到的元素小于 `min_element`,则更新 `min_element` 的值为遍历到的元素的值。1. 假设数组中的第一个元素为当前的最小元素,将其保存在一个变量 `min_element` 中。2. 从数组的第二个元素开始遍历,比较遍历到的元素和 `min_element` 的大小。5. 返回 `min_element` 即为数组中的最小元素。数组的最小元素为:1。原创 2023-12-05 22:13:33 · 629 阅读 · 0 评论 -
考研真题数据结构
接下来定义了顺序表的基本操作函数 `init`、`insert`、`remove`、`get` 和 `print`。在 `main` 函数中,首先初始化了一个顺序表对象 `list`,然后通过调用 `insert` 函数向顺序表中插入元素,通过调用 `remove` 函数从顺序表中删除元素,通过调用 `get` 函数获取指定位置的元素值,并通过调用 `print` 函数打印顺序表中的所有元素。// 位置为 2 的元素值:30。// 顺序表的元素:10 20 30。// 顺序表的元素:10 30。原创 2023-12-05 21:52:05 · 363 阅读 · 0 评论 -
考研数据结构基础试卷练习
1.设某数据结构的二元组形式表示为A=(D,R),D={01,02,03,04,05,06,07,08,09},R={r},r={,,,,,,,},则数据结构A是( )。3.设有向图G的二元组形式表示为G =(D,R),D={1,2,3,4,5},R={r},r={,,,,,},则给出该图的一种拓扑排序序列__________。原创 2023-12-02 19:16:04 · 849 阅读 · 5 评论 -
考研数据结构重要知识点
是:首先访问图中某一起始顶点v,然后由v出发,访问与v邻接但未被访问的顶点w1,再访问与W1邻接但未被访问的顶点w2.....重复上述过程,当不能再向下访问时,依次退回到最近被访问的结点,若他还有顶点未被访问过,则从该点开始继续上述的搜索过程,直至图中所有顶点都被访问过为止。:此算法是双层循环,外层循环控制次数,一共要归并n个顶点,因此要循环n-1次,内层并列两个循环,每个循环负责遍历一个数组,其时间复杂度为o(n),因此此算法的时间复杂度为O(n2),时间复杂度只与顶点有关,与边无关,适用于稠密图。原创 2023-12-01 17:19:29 · 935 阅读 · 1 评论 -
考研数据结构易错选择题
【解析】:3个结点的二叉树有5种形态:两层树:根左右;三层树: 根左(第二层)左(第三层)、根左(第二层)右(第三层)、根右(第二层)左(第三层)、根右(第二层)右(第三层)。原创 2023-12-03 15:04:00 · 1848 阅读 · 2 评论 -
易错C语言选择题
则以下符合C语言语法的表达式是答案:A【解析】:A项是赋值表达式和算术表达式的结合,符合C语言语法;B项中,’%’是模运算符,要求运算符两侧均为整数,x为double,显然错误;C项是赋值表达式,要求赋值运算符的左侧是变量,3=2部分显然错误;D项,强制类型转换运算符使用错误,应为y=(float)iA. define宏是在预处理阶段展开。const常量是编译运行阶段使用B. 宏没有类型,不做任何类型检查,仅仅是展开。const常量有具体的类型,在编译阶段会执行类型检查。原创 2023-12-02 17:18:31 · 1634 阅读 · 0 评论