数据结构
文章平均质量分 95
初见还是重逢
记录个人学习
展开
-
【堆】C++下定义通用的堆模板
程序员在写程序时,最常遇到的就是排序问题对于N个待排序的数据结构,使用冒泡插入等排序方法,时间复杂度为O(N2),往往不能满足要求,因此需要使用更加高效的排序方法(归并,二分等)将时间复杂度降低为O(logN)因此,本文在这里介绍堆排序的方法,与堆的通用数据结构代码,以供参考部分基础知识什么是堆?定义:堆是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。要点1:堆可以类比为完全二叉树要点2:父亲节点的键值或索引总是小于(或者大于)左.原创 2021-03-07 15:16:53 · 958 阅读 · 0 评论 -
中国大学MOOC-陈越、何钦铭-数据结构-2019春期末考试
判断题:1-1若一棵平衡二叉树的所有非叶结点的平衡因子都是0,则其必为完美二叉树。(2分)1-2采用平方探测冲突解决策略(hi(k)=(H(k)+i2 )%11, 注意:不是±i2),将一批散列值均等于2的对象连续插入一个大小为11的散列表中,那么第4个对象一定位于下标为0的位置。 (2分)1-3n!是O(nn)的。 (2分)1-4对N个不同的数据采用冒泡排序进行从大到小的排序,当元素...原创 2019-05-29 14:05:17 · 7321 阅读 · 0 评论 -
哈利·波特的考试
此题考查有权多源图的最短路的算法对于计算有权多源图的最短路径,有两种实现方法,一种是直接将单源最短路算法调用N遍,二是使用Floyd算法。Floyd算法1,从任意一条单边路径开始。所有两点之间的距离是边的权,如果两点之间没有边相连,则权为无穷大。2,对于每一对顶点 u 和 v,看看是否存在一个顶点 w 使得从 u 到 w 再到 v 比已知的路径更短。如果是更新它。3,把所有顶点作为中间...原创 2019-05-07 21:55:50 · 594 阅读 · 0 评论 -
中国大学MOOC-陈越、何钦铭-数据结构-2019春期中考试
做了《数据结构》MOOC的期中考试,感觉还是有很多知识需要学习,现将考试题目整理如下:判断题:1-1用邻接矩阵法存储图,占用的存储空间数只与图中结点个数有关,而与边数无关。 (3分)1-2所谓“循环队列”是指用单向循环链表或者循环数组表示的队列。 (2分)1-3如果无向图G必须进行两次广度优先搜索才能访问其所有顶点,则G中一定有回路。 (3分)1-4算法可以没有输入,但是必须有输出。 (...原创 2019-04-20 10:31:29 · 12444 阅读 · 12 评论 -
最小堆的路径
本题完成最小堆的建立将一系列给定数字插入一个初始为空的小顶堆H[]。随后对任意给定的下标i,打印从H[i]到根结点的路径。输入格式:每组测试第1行包含2个正整数N和M(≤1000),分别是插入元素的个数、以及需要打印的路径条数。下一行给出区间[-10000, 10000]内的N个要被插入一个初始为空的小顶堆的整数。最后一行给出M个下标。输出格式:对输入中给出的每个下标i,在一行中输出从H...原创 2019-04-03 20:04:28 · 259 阅读 · 0 评论 -
Root of AVL Tree
本题考场avl树的四种旋转方法与树的深度的计算An AVL tree is a self-balancing binary search tree. In an AVL tree, the heights of the two child subtrees of any node differ by at most one; if at any time they differ by more ...原创 2019-04-03 15:25:14 · 2931 阅读 · 6 评论 -
列出连通集
此题考查图的构建(使用邻接矩阵构建或者邻接表构建)与遍历,使用深度优先遍历与广度优先遍历的两种遍历方法浅谈深度优先与广度优先:深度优先(DFS)遍历图的方法是,从图中某顶点v出发:访问顶点v;依次从v的未被访问的邻接点出发,对图进行深度优先遍历;直至图中和v有路径相通的顶点都被访问;对于深度优先算法,需要使用递归进行,其伪代码如下:void DFS(起始节点 V){ 将起始...原创 2019-04-11 21:01:01 · 2545 阅读 · 3 评论 -
List Leaves
本题是建立树的基本操作,同时通过使用队列的方法从上到下,从左到右的顺序输出叶节点,思路是广度优先算法。Given a tree, you are supposed to list all the leaves in the order of top down, and left to right.Input Specification:Each input file contains one...原创 2019-03-29 11:27:00 · 1372 阅读 · 3 评论 -
树的同构判断
使用递归的思路解决树的同构的判断给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。现给定两棵树,请你判断它们是否是同构的。输入格式:输入给出2棵二叉树树的信息。对于每棵树,首先在一行中给出一个非负整数N (≤10),...原创 2019-03-28 22:27:13 · 1059 阅读 · 0 评论 -
是否同一棵二叉搜索树
本题是C语言建立二叉搜索树的方法与判断两个树是否为同一个二叉搜索树给定一个插入序列就可以唯一确定一棵二叉搜索树。然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到。例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果。于是对于输入的各种插入序列,你需要判断它们是否能生成一样的二叉搜索树。输入格式:输入包含若干组测试数据。每组数据的第1行给出两...原创 2019-04-02 14:33:14 · 444 阅读 · 0 评论 -
一元多项式的乘法与加法运算
学习数据结构,本文记录一下使用链表完成一元多项式的乘法与加法运算的题目:题目及要求如下设计函数分别求两个一元多项式的乘积与和。输入格式:输入分2行,每行分别先给出多项式非零项的个数,再以指数递降方式输入一个多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:输出分2行,分别以指数递降方式输出乘积多项式以及和多项式非零项的系数和指数。数字间以空格分隔,但...原创 2019-03-28 19:42:00 · 260 阅读 · 0 评论