java数据结构
怀化学院java数据结构题解
星与星熙.
这个作者很懒,什么都没留下…
展开
-
哈夫曼编码大全(数据结构实训)(难度系数100)
构建:构建哈夫曼树的过程即每次从储存的叶子结点中找到最小的两个叶子结点,重新组成一个新的叶子结点 ,最后长度不超过2*n-1。编码:首先获取编码,从底开始找到头,储存编码后,每次遍历找到相同字符,则输出对应编码。接下来输入一个数M,表示接下来有M行字符串,要求你对每个字符串进行编码。解码:相当于字符串匹配算法,找到相同字符串即可,输出编码对应的字符。再输入一个数X,表示接下来有X行编码,要求你对每行编码进行解码。接着输出M行,对输入的字符串的编码结果。关于哈夫曼树的建立,编码,解码。原创 2023-12-30 14:29:39 · 668 阅读 · 2 评论 -
二叉排序树的插入删除和查找(数据结构实训)(难度系数100)
delete: 删除,删除成功输出TRUE,没有该元素则输出FALSE,删除的方法是如果有左子树,以左子树中最大值作为新的树根,否则,以右子树最小值作为树根。注意:在样例中,我先把15删除掉了,然后再插入15,观察最开始的三个遍历,和最后的三次遍历,遍历结果是有区别的。接下来一行为N个整数,你需要把这N个整数构建出相应的二叉排序树。根据相应的指令进行输出。说明:遍历各元素之间用一个空格隔开。search: 查找,存在该元素输出YES, 否则输出NO。insert: 插入,本题中不会出现相同的元素。原创 2023-12-30 14:29:22 · 1109 阅读 · 2 评论 -
最短路径(数据结构实训)(难度系数100)
因为题目中涉及到最大值的计算,如果使用Integer.MAX_VALUE加任意一个数的话就会变为负数,求最小值的话就会一直是Integer.MAX_VALUE+其他数的和,我自己写的时候每次加都会变成负数,所以就把最大值改小了,本题数据并不强,可以用一个足够大的数代替这个最大值即可,不一定非得是。输出格式是根据顶点输入顺序,依次输出其最智短路径长度。输入只有一个用例,第一行包括若干个字符,分别表示各顶点的名称,接下来是一个非负的整数方阵,方阵维数等于顶点数,其中0表示没有路,正整数表示两点之间边的长度。原创 2023-12-28 22:48:38 · 838 阅读 · 0 评论 -
构造哈夫曼树(数据结构实训)(难度系数85)
第二行为一个字符串,包含n个字符,每个字符对应一个叶子结点,第三行为每个叶子结点的概率(即权值),要求根据各叶结点构造哈夫曼树。构造哈夫曼树的原则是先两个最小的,构造一个父结点,其中最小的结点为左孩子,次小的为右孩子,如果两个最小的叶结点相等,则取排在前一个位置的为左孩子。我花了一个晚上才发现找最小和第二小结点的时候,必须每次都从下标为0开始找,因为我开始想着,最小的是min1,下标为0开始,第二小的应该就是min2,下标为1开始,可是这样一直不对,然后改成了每次两个都从0开始。原创 2023-12-28 22:44:36 · 634 阅读 · 2 评论 -
链式二叉树的创建及遍历(数据结构实训)(难度系数100)
链式二叉树的创建及遍历描述:树的遍历有先序遍历、中序遍历和后序遍历。先序遍历的操作定义是先访问根结点,然后访问左子树,最后访问右子树。中序遍历的操作定义是先访问左子树,然后访问根,最后访问右子树。后序遍历的操作定义是先访问左子树,然后访问右子树,最后访问根。对于采用链式存储结构的二叉树操作中,创建二叉树通常采用先序次序方式输入二叉树中的结点的值,空格表示空树。对于如下的二叉树,我们可以通过如下输入“AE-F--H--”得到( ‘-’表示空子树)。原创 2023-12-07 20:38:23 · 639 阅读 · 0 评论 -
图的广度优先搜索(数据结构实训)(难度系数100)
图的广度优先搜索描述:图的广度优先搜索类似于树的按层次遍历,即从某个结点开始,先访问该结点,然后访问该结点的所有邻接点,再依次访问各邻接点的邻接点。如此进行下去,直到所有的结点都访问为止。在该题中,假定所有的结点以“A”--“Z”中的若干字符表示,且要求结点的访问顺序要求根据由“A”至“Z”的字典顺序进行访问。原创 2023-12-07 15:57:46 · 644 阅读 · 0 评论 -
图的深度优先搜索(数据结构实训)(难度系数100)
图的深度优先搜索描述:图的深度优先搜索类似于树的先根遍历,是树的先根遍历的推广。即从某个结点开始,先访问该结点,然后深度访问该结点的第一棵子树,依次为第二顶子树。如此进行下去,直到所有的结点都访问为止。在该题中,假定所有的结点以“A”至“Z”中的若干字符表示,且要求结点的访问顺序根据“A”至“Z”的字典顺序进行访问。原创 2023-12-06 16:12:24 · 894 阅读 · 0 评论 -
对称矩阵存储(数据结构实训)(难度系数65)
对称矩阵存储标准输入输出题目描述:对于对称矩阵的存储,可以只存储下三角中的元素。对于给定的对称矩阵,要求进行压缩存储。输入:输入包括若干个测试用例,对于每一个测试用例,第一行为一个正整数n(1原创 2023-12-06 13:15:55 · 493 阅读 · 0 评论 -
稀疏矩阵的操作(数据结构实训)(难度系数65)
标准输入输出题目描述:稀疏矩阵可以采用三元组存储。输入:输入包含若干个测试用例,每个测试用例的第一行为两个正整数m,n(1原创 2023-12-05 10:33:38 · 552 阅读 · 0 评论 -
三元组的快速转置(数据结构实训)(难度系数85)
标准输入输出题目描述:使用快速转置算法实验三元组的转置。输入:输入包含若干个测试用例,每个测试用例第一行为两个正整数m,n表示稀疏矩阵的行数和列数,接下来m行,每行n个整数,表示稀疏矩阵元素。要求采用三元组存储,并使用普通转置方法实验三元组的逆置。输出:对每一测试用例,输出逆置后的三元组。输入样例:5 6输出样例:6 5 81 1 51 3 92 2 82 4 63 2 23 4 75 1 45 3 1。原创 2023-12-05 10:33:59 · 578 阅读 · 0 评论 -
哈希查找(数据结构实训)(难度系数75)
哈希查找标准输入输出题目描述:实现哈希查找。要求根据给定的哈希函数进行存储,并查找相应元素的存储位置。本题目使用的哈希函数为除留取余法,即H(key)=key%m,其中m为存储空间,冲突处理方法采用开放定址法中的线性探测再散列,即Hi=(H(key)+i)/%m,0原创 2023-12-04 20:32:36 · 993 阅读 · 0 评论 -
循环队列(数据结构实训)(难度系数75)
标准输入输出题目描述:根据给定的空间构造顺序循环队列,规定队满处理方法为少用一个元素空间。例如,给定5个元素空间构造循环队列,则只能存放4个元素。试根据入队及出队操作判断队列最后的元素存放情况,并输出最后队列中的元素值,即完成给定入队及出列操作后一次性全部出队的元素值。要求采用顺序队列完成。输入:输入的第一行为一个自然数n,表示要求构造的顺序循环队列空间数。第二行为操作次k,接下来k行为出队入队操作,每行各代表一次操作。原创 2023-12-04 09:59:43 · 1057 阅读 · 0 评论 -
直接插入排序(数据结构实训)(难度系数75)
直接插入排序描述利用直接插入排序算法实现线性表的排序。要求输出第k趟排序的结果。例如原来线性表为:26,12,25,4,36,15,21,第一趟直接排序排序结果为: 12, 26,25,4,36,15,21,第二趟直接插入排序结果为: 12,25, 26,4,36,15,21。输入第一个为元素个数n(1原创 2023-12-03 15:46:38 · 546 阅读 · 0 评论 -
希尔排序(数据结构实训)(难度系数85)
希尔排序描述利用希尔排序算法实现线性表的排序。希尔排序是根据给定的增量序列将线性表分隔成某个“增量”的记录组成一个子序例,在子序列中采用直接插入排序完成。输入第一行为元素个数n(1原创 2023-12-03 15:46:21 · 630 阅读 · 0 评论 -
括号匹配的检验(数据结构实训)(难度系数85)
括号匹配的检验标准输入输出题目描述:采用栈实现,练习进栈入栈函数的编写.输入:输入的第一行包含一个数,nn表示要用例的个数接下来是n行由括号构成的字符串,包含‘(’、‘)’、‘[’、‘]’。输出:对每一测试用例,用一行输出结果,如果匹配,输出“YES”,否则输出“NO”输入样例:2[([][]())])[]()输出样例:YESNO。原创 2023-12-02 16:03:48 · 982 阅读 · 2 评论 -
数制转换(数据结构实训)(难度系数75)
标准输入输出题目描述:数制转换。(要求采用栈实现,练习进栈入栈函数的编写)输入:输入的第一行包含两个数,n,dn表示要转换的数的个数d表示要转换成的进制数接下来是n个十进制数输出:对每一测试用例,用一行输出数制转换后的结果输入样例:2 8123213输出样例:173325。原创 2023-12-01 20:57:05 · 929 阅读 · 0 评论 -
折半查找(数据结构实训)(难度系数75)
标准输入输出题目描述:实现折半查找。要求查找给定的值在数据表中相应的存储位置。本题目假定输入元素均按非降序输入。输入:输入包含若干个测试用例,第一行为测试用例个数k。每个测试用例占3行,其中第一行为元素个数n,第二行为n个元素值,即数据表中的元素,第三行为需要查找的元素。输出:对每一测试用例,分别用一行输出两个值,分别表示相应的位置和查找次数,用空格隔开。如果查找不成功,则位置表0表示。输入样例:151 2 4 7 94输出样例:3 1。原创 2023-12-01 20:55:43 · 758 阅读 · 0 评论 -
顺序查找(数据结构实训)(难度系数65)
题目描述:实现顺序查找。要求查找给定的值在数据表中相应的存储位置。本题目假定所有的元素互不相同,并且要求查找顺序为从后往前查询。输入:输入包含若干个测试用例,第一行为测试用例个数k。每个测试用例占3行,其中第一行为元素个数n,第二行为n个元素值,即数据表中的元素,第三行为需要查找的元素。输出:对每一测试用例,分别用一行输出两个值,分别表示相应的位置和查找次数,用空格隔开。如果查找不成功,则位置表0表示。输入样例:152 4 1 7 97输出样例:4 2。原创 2023-12-01 20:54:32 · 561 阅读 · 0 评论 -
链式线性表的插入与删除(数据结构实训)(难度系数65)
描述:删除链式线性表指定位置的元素。输入:第一行为自然数n,表示链式线性表的长度,第二行为n个自然数表示链式线性表各元素值。第三行为指定删除的位置,第四行为插入的位置及元素值(如果位置不对,则不作操作,插入位置应在删除元素后重新计数)。输出:输出删除与插入元素后的链式线性表的所有元素,元素之间用一个空格隔开。样例输入:51 2 3 4 536 7样例输出:1 2 4 5。原创 2023-12-01 20:53:06 · 713 阅读 · 1 评论 -
合并线性表(数据结构实训)(难度系数65)
描述:已知两非递减的顺序线性表,要求合并成一个新的非递减顺序线性表。输入:输入包含四行,第一行为自然数n,表示第一个非递减顺序线性表的长度,第二行为n个自然数构成的非递减顺序线性表,第三行为自然数m,表示第二个非递减顺序线性表的长度,第四行为m个自然数构成的非递减顺序线性表。输出:用一行输出合并后的非递减顺序线性表,各数之间用一个空格隔开。样例输入:21 332 3 6样例输出:1 2 3 3 6。原创 2023-12-01 20:51:26 · 712 阅读 · 1 评论