OJ
z-k
这个作者很懒,什么都没留下…
展开
-
基数排序(内部排序)
题目描述 给定一组数据,对其进行基数升序排序。 输入 测试次数t 每组测试数据一行:数字个数n,后跟n个数字(整数) 注:如果序列中有负数,则每个数字加上最小负数的绝对值,使序列中的数均大于等于0。排序后再减去最小负数的绝对值。 输出 对每组测试数据,输出每趟分配、收集的结果。若分配中该位没有数字,输出NULL。具体输出格式见样例。每...原创 2018-12-25 22:49:23 · 1770 阅读 · 0 评论 -
顺序表
题目描述 给出顺序表的初始数据,实现顺序表的定义、创建、插入、删除与查找操作。输入 测试次数t每组测试数据格式如下:第一行: 正整数n,后跟n个整数第二行: 插入位置 插入元素第三行: 删除位置第四行: 删除元素第五行: 查找元素输出对每个顺序表,首先输出建表后的顺序表。 插入、删除操作,操作成功,输出操作后的顺序表。操作不成功,输出ERROR。...原创 2018-11-27 22:31:57 · 387 阅读 · 0 评论 -
DS查找—二叉树平衡因子
题目描述二叉树用数组存储,将二叉树的结点数据依次自上而下,自左至右存储到数组中,一般二叉树与完全二叉树对比,比完全二叉树缺少的结点在数组中用0来表示。计算二叉树每个结点的平衡因子,并按后序遍历的顺序输出结点的平衡因子。输入测试次数t每组测试数据一行,数组元素个数n,后跟n个字符,二叉树的数组存储。输出对每组测试数据,按后序遍历的顺序输出树中结点的平衡因子(测试数据没有空...原创 2018-12-04 17:50:44 · 2000 阅读 · 0 评论 -
哈希查找与增补
题目描述给出一个数据序列,建立哈希表,采用求余法作为哈希函数,模数为11,哈希冲突用链地址法和表尾插入如果首次查找失败,就把数据插入到相应的位置中实现哈希查找与增补功能输入第一行输入n,表示有n个数据第二行输入n个数据,都是自然数且互不相同,数据之间用空格隔开第三行输入t,表示要查找t个数据从第四行起,每行输入一个要查找的数据,都是正整数输出每行输出对应数据的查找结果,...原创 2018-12-04 17:35:10 · 703 阅读 · 0 评论 -
DS哈希查找—二次探测再散列
题目描述定义哈希函数为H(key) = key%11。输入表长(大于、等于11),输入关键字集合,用二次探测再散列构建哈希表,并查找给定关键字。输入测试次数t每组测试数据格式如下:哈希表长m、关键字个数nn个关键字查找次数kk个待查关键字输出对每组测试数据,输出以下信息:构造的哈希表信息,数组中没有关键字的位置输出NULL对k个待查关键字,分别输出:...原创 2018-12-04 17:23:03 · 35851 阅读 · 2 评论 -
DS哈希查找—线性探测再散列
题目描述 定义哈希函数为H(key) = key%11。输入表长(大于、等于11),输入关键字集合,用线性探测再散列构建哈希表,并查找给定关键字。输入 测试次数t每组测试数据为:哈希表长m、关键字个数nn个关键字查找次数kk个待查关键字输出对每组测试数据,输出以下信息:构造的哈希表信息,数组中没有关键字的位置输出NULL对k个待查关键字,分别输出:0...原创 2018-12-04 17:02:42 · 2992 阅读 · 3 评论 -
关键路径-STL版
题目描述给定有向图无环的边信息,求每个顶点的最早开始时间、最迟开始时间。输入第一行图的顶点总数第二行边的总数第三行开始,每条边的时间长度,格式为源结点 目的结点 长度输出第一行:第个顶点的最早开始时间第二行:每个顶点的最迟开始时间样例输入9120 1 30 2 101 3 91 4 132 4 122 5 73 6 8...原创 2018-11-21 00:03:23 · 1762 阅读 · 0 评论 -
DS树+图综合练习--拓扑排序
题目描述已知有向图,顶点从0开始编号,求它的求拓扑有序序列。拓扑排序算法:给出有向图邻接矩阵1.逐列扫描矩阵,找出入度为0且编号最小的顶点v2.输出v,并标识v已访问3.把矩阵第v行全清0重复上述步骤,直到所有顶点输出为止输入第一行输入一个整数t,表示有t个有向图第二行输入n,表示图有n个顶点第三行起,输入n行整数,表示图对应的邻接矩阵以此类推输入下一个图...原创 2018-11-20 23:40:42 · 835 阅读 · 0 评论 -
DS二叉树—二叉树镜面反转
题目描述假设二叉树用二叉链表存储,用先序序列结果创建。输入二叉树的先序序列,请你先创建二叉树,并对树做个镜面反转,再输出反转后的二叉树的先序遍历、中序遍历、后序遍历和层序遍历的序列。所谓镜面反转,是指将所有非叶结点的左右孩子对换。输入测试次数t每组测试数据是一个二叉树的先序遍历序列,#表示空树输出对每棵二叉树,输出镜面反转后的先序、中序、后序和层次遍历序列。如果空树,输出四...原创 2018-11-20 23:37:38 · 1981 阅读 · 0 评论 -
二叉树链表实现及先序、中序、后序、层序遍历
#include <iostream>#include <queue>#include <string>using namespace std;class BiTreeNode{public: char data; BiTreeNode *LeftChild; BiTreeNode *RightChild; BiTr...原创 2018-11-20 22:32:35 · 716 阅读 · 0 评论 -
DS堆栈--迷宫求解
题目描述给出一个N*N的迷宫矩阵示意图,从起点[0,0]出发,寻找路径到达终点[N-1, N-1]要求使用堆栈对象来实现,具体算法参考课本3.2.4节51页 输入第一行输入t,表示有t个迷宫第二行输入n,表示第一个迷宫有n行n列第三行起,输入迷宫每一行的每个方格的状态,0表示可通过,1表示不可通过输入n行以此类推输入下一个迷宫输出逐个输出迷宫的路径如...原创 2018-11-08 17:39:56 · 1615 阅读 · 0 评论 -
DS静态查找之折半查找
题目描述给出一个队列和要查找的数值,找出数值在队列中的位置,队列位置从1开始要求使用折半查找算法输入第一行输入n,表示队列有n个数据第二行输入n个数据,都是正整数,用空格隔开第三行输入t,表示有t个要查找的数值第四行起,输入t个数值,输入t行输出每行输出一个要查找的数值在队列的位置,如果查找不成功,输出字符串error样例输入811 22 33 44 55 66...原创 2018-11-27 22:32:13 · 468 阅读 · 0 评论 -
DS静态查找之顺序索引查找
题目描述给出一个队列和要查找的数值,找出数值在队列中的位置,队列位置从1开始要求使用顺序索引查找算法,其中索引表查找和块内查找都采用不带哨兵、从头开始的顺序查找方法。输入第一行输入n,表示主表有n个数据第二行输入n个数据,都是正整数,用空格隔开第三行输入k,表示主表划分为k个块,k也是索引表的长度第四行输入k个数据,表示索引表中每个块的最大值第五行输入t,表示有t个要查找的数值第六...原创 2018-11-27 22:43:28 · 1588 阅读 · 0 评论 -
DS查找——折半查找求平方根
题目描述假定输入y是整数,我们用折半查找来找这个平方根。在从0到y之间必定有一个取值是y的平方根,如果我们查找的数x比y的平方根小,则x2<y,如果我们查找的数x比y的平方根大,则x2>y,我们可以据此缩小查找范围,当我们查找的数足够准确时(比如满足|x2-y|<0.00001),就可以认为找到了y的平方根。输入第1行输入一个整数n(<100),表示有n个数...原创 2018-11-27 22:45:49 · 867 阅读 · 0 评论 -
计算2支股票的M天运动平均价格
题目描述给定2支股票的开盘价和收盘价的N天历史数据,要求按开盘和收盘,分别计算每支股票的每个日期对应的M天移动平均价格。假定两个股票数据如下: 日期 开盘/收盘 第1支股票价格S1 第2支股票价格S22004/7/29 close 6 42004/7/25 close ...原创 2018-12-18 20:31:17 · 1901 阅读 · 0 评论 -
Web导航 (Ver. I)
题目描述标准Web浏览器包含在最近访问过的页面之间前后移动的功能。 实现这些功能的一种方法是使用两个堆栈来跟踪可以通过前后移动到达的页面。 在此问题中,系统会要求您实现此功能。需要支持以下命令:BACK:将当前页面推到前向堆栈的顶部。 从后向堆栈的顶部弹出页面,使其成为新的当前页面。 如果后向堆栈为空,则忽略该命令。FORWARD:将当前页面推到后向堆栈的顶部。 从前向堆栈的顶部弹出页面,使其...原创 2018-12-18 20:21:30 · 1224 阅读 · 0 评论 -
Trie树
题目描述Trie树又称单词查找树,是一种树形结构,如下图所示。它是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来节约存储空间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。 输入的一组单词,创建Trie树。输入字符串,计算以该字符串为公共前缀的单词数。(提示:树结...原创 2018-12-18 20:15:59 · 781 阅读 · 0 评论 -
DS内排—堆排序
题目描述给定一组数据,使用堆排序完成数据的降序排序。(建小顶堆)。输入数据个数n,n个整数数据输出初始创建的小顶堆序列每趟交换、筛选后的数据序列,输出格式见样例样例输入8 34 23 677 2 1 453 3 7 样例输出8 1 2 3 7 23 453 677 348 2 7 3 34 23 453 677 18 3 7 453 34 23 ...原创 2018-12-18 20:03:21 · 2029 阅读 · 0 评论 -
DS内排—2-路归并排序
题目描述输入一组字符串,用2-路归并排序按字典顺序进行降序排序。输入 测试次数t每组测试数据:数据个数n,后跟n个字符串,字符串不含空格。输出 对每组测试数据,输出2-路归并排序的每一趟排序结果。每组测试数据的输出之间有1空行。样例输入26 shenzhen beijing guangzhou futian nanshan baoan10 apple pea...原创 2018-12-14 20:04:24 · 3228 阅读 · 0 评论 -
DS排序--快速排序
题目描述给出一个数据序列,使用快速排序算法进行从小到大的排序输入第一行输入t,表示有t个测试示例第二行输入n,表示第一个示例有n个数据第三行输入n个数据,都是正整数,数据之间用空格隔开以此类推输出每组测试数据,输出每趟快排的结果,即每次排好一个数字结果(长度为1的子序列,不用排,不用输出)。不同测试数据间用空行分隔。样例输入26111 22 6 444 333 ...原创 2018-12-14 19:59:53 · 2584 阅读 · 0 评论 -
DS排序--希尔排序
题目描述给出一个数据序列,使用希尔排序算法进行降序排序。间隔gap使用序列长度循环除2直到1输入第一行输入t,表示有t个测试示例第二行输入n,表示第一个示例有n个数据(n>1)第三行输入n个数据,都是正整数,数据之间用空格隔开以此类推输出对每组测试数据,输出每趟排序结果。不同组测试数据间用空行分隔。样例输入26111 22 6 444 333 55...原创 2018-12-14 19:57:16 · 1432 阅读 · 0 评论 -
DS二叉排序树之删除(带图示)
题目描述给出一个数据序列,建立二叉排序树,并实现删除功能对二叉排序树进行中序遍历,可以得到有序的数据序列输入第一行输入t,表示有t个数据序列第二行输入n,表示首个序列包含n个数据第三行输入n个数据,都是自然数且互不相同,数据之间用空格隔开第四行输入m,表示要删除m个数据从第五行起,输入m行,每行一个要删除的数据,都是自然数以此类推输入下一个示例输出第一行...原创 2018-11-27 23:14:40 · 17103 阅读 · 4 评论 -
DS二叉排序树之查找
题目描述给出一个数据序列,建立二叉排序树,并实现查找功能对二叉排序树进行中序遍历,可以得到有序的数据序列输入第一行输入t,表示有t个数据序列第二行输入n,表示首个序列包含n个数据第三行输入n个数据,都是自然数且互不相同,数据之间用空格隔开第四行输入m,表示要查找m个数据从第五行起,输入m行,每行一个要查找的数据,都是自然数以此类推输入下一个示例输出第一行...原创 2018-11-27 22:59:28 · 1009 阅读 · 0 评论 -
DS二叉排序树之创建和插入
题目描述给出一个数据序列,建立二叉排序树,并实现插入功能对二叉排序树进行中序遍历,可以得到有序的数据序列输入第一行输入t,表示有t个数据序列第二行输入n,表示首个序列包含n个数据第三行输入n个数据,都是自然数且互不相同,数据之间用空格隔开第四行输入m,表示要插入m个数据从第五行起,输入m行,每行一个要插入的数据,都是自然数且和前面的数据不等以此类推输入下一个示例...原创 2018-11-27 22:54:45 · 1649 阅读 · 0 评论 -
追星
题目描述城市总共有N座。小明准备动身前往城市N。原本他可以直接乘飞机直达城市N,然而他必须选择总花费最少的那条路径。设总共有N座城市(2<=N<=1000),城市编号分别为1,2,3......N。M条航线(1<=M<=2000),每条航线连接两座城市,并且可以往返(无向)。小明目前在身在城市1,求最后小明到达城市N所需要的最少花费。(PS:需考虑重边)输入有多...原创 2018-11-13 22:00:15 · 605 阅读 · 0 评论 -
图的应用之——图的连通
题目描述给定一个图的邻接矩阵,请判断该图是否是连通图。连通图:任意两个顶点之间都有路径。程序要求--若使用C++只能include一个头文件iostream;若使用C语言只能include一个头文件stdio程序中若include多过一个头文件,不看代码,作0分处理不允许使用第三方对象或函数实现本题的要求输入第1行输入一个整数k,表示有k个测试数据第2行输入一个整数...原创 2018-11-13 21:52:26 · 1246 阅读 · 0 评论 -
最长重复子串
题目描述求串的最长重复子串长度(子串不重叠)。例如:abcaefabcabc的最长重复子串是串abca,长度为4。输入测试次数tt个测试串输出对每个测试串,输出最长重复子串长度,若没有重复子串,输出-1.样例输入3 abcaefabcabc szu0123szu szuabcefg样例输出4 3 -1 #include <iostream...原创 2018-10-10 00:14:10 · 7688 阅读 · 2 评论 -
计算一个串的最长的真前后缀
题目描述给定一个串,如ABCDAB,则 ABCDAB的真前缀有:{ A, AB,ABC, ABCD, ABCDA } ABCDAB的真后缀有:{ B, AB,DAB, CDAB, BCDAB } 因此,该串的真前缀和真后缀中最长的相等串为AB,我们称之为该串的“最长的真前后缀”。 试实现一个函数string matched_Prefix_Postfix(string str),得到输入串str...原创 2018-10-10 00:12:58 · 1474 阅读 · 0 评论 -
DS栈—排队游戏
题目描述在幼儿园中,老师安排小朋友做一个排队的游戏。首先老师精心的把数目相同的小男孩和小女孩编排在一个队列中,每个小孩按其在队列中的位置发给一个编号(编 号从0开始)。然后老师告诉小朋友们,站在前边的小男孩可以和他后边相邻的小女孩手拉手离开队列,剩余的小朋友重新站拢,再按前后相邻的小男孩小女孩手拉 手离开队列游戏,如此往复。由于教师精心的安排,恰好可以保证每两个小朋友都能手拉手离开队列,并且最...原创 2018-10-17 00:04:18 · 719 阅读 · 0 评论 -
DS队列+堆栈--数制转换
题目描述对于任意十进制数转换为k进制,包括整数部分和小数部分转换。整数部分采用除k求余法,小数部分采用乘k取整法例如x=19.125,求2进制转换整数部分19, 小数部分0.12519 / 2 = 9 … 1 0.125 * 2 = 0.25 … 09 / 2 = 4 … 1 0.25 * 2 = 0.5 … 04 / 2 = 2 … 0 0....原创 2018-10-16 10:58:39 · 745 阅读 · 0 评论 -
约瑟夫环 (Ver. I - A)
题目描述N个人坐成一个圆环(编号为1 - N),从第S个人开始报数,数到K的人出列,后面的人重新从1开始报数。问最后剩下的人的编号。例如:N = 3,K = 2,S = 1。2号先出列,然后是1号,最后剩下的是3号。要求使用循环链表实现。输入测试数据有多组,每组包括3个数N、K、S,表示有N个人,从第S个人开始,数到K出列。(1 <= N <= 10^6,1 &...原创 2018-10-16 10:57:08 · 964 阅读 · 0 评论 -
DS线性结构—火车问题 (Ver. I)
题目描述某火车站只有一条铁轨供火车停靠,所有的列车都从一侧进入,从另一侧出来。如果此时,列车A首先进入铁路,然后列车B在列车A离开之前进入铁路,则列车A不能离开,直到列车B离开(如下图所示)。车站最多有9列火车,所有火车都有一个ID(编号从1到n),列车按照Order1的顺序进入铁路,你需要确定列车可以以Order2的顺序从地铁站离开。输入测试数据有多组每组包含一个整数N和两...原创 2018-10-16 10:56:20 · 857 阅读 · 0 评论 -
DS堆栈--括号匹配
处理表达式过程中需要对括号匹配进行检验,括号匹配包括三种:“(”和“)”,“[”和“]”,“{”和“}”。例如表达式中包含括号如下:( ) [ ( ) ( [ ] ) ] { }1 2 3 4 5 6 7 8 9 10 11 12从上例可以看出第1和第2个括号匹配,第3和第10个括号匹配,4和5匹配,6和9匹配,7和8匹配,11和12匹配。从中可以看到括号嵌套的的情况是比较复杂的,使...原创 2018-10-16 10:55:12 · 1192 阅读 · 0 评论 -
DS堆栈--行编辑
题目描述使用C++的STL堆栈对象,编写程序实现行编辑功能。行编辑功能是:当输入#字符,则执行退格操作;如果无字符可退就不操作,不会报错本程序默认不会显示#字符,所以连续输入多个#表示连续执行多次退格操作每输入一行字符打回车则表示字符串结束注意:必须使用堆栈实现,而且结果必须是正序输出 输入第一行输入一个整数t,表示有t行字符串要输入第二行起输入一行字符串,共输入t行...原创 2018-10-16 10:53:40 · 1324 阅读 · 0 评论 -
DS堆栈--逆序输出(STL栈使用)
题目描述C++中已经自带堆栈对象stack,无需编写堆栈操作的具体实现代码。本题目主要帮助大家熟悉stack对象的使用,然后实现字符串的逆序输出输入一个字符串,按字符按输入顺序压入堆栈,然后根据堆栈后进先出的特点,做逆序输出 stack类使用的参考代码n包含头文件<stack> : #include <stack>n创建一个堆栈对象s(注意s...原创 2018-10-16 10:52:40 · 2138 阅读 · 0 评论 -
DS链表—学生宿舍管理
题目描述假设某校有20间宿舍,宿舍编号101,102,...,120。每间只住一名学生。初始部分宿舍已用。用两个链表(已用宿舍链表和可用宿舍链表)维护宿舍的管理,实现宿舍分配、宿舍交回。约定已用宿舍链表按宿舍号升序链接。初始可用宿舍链表也按宿舍号升序链接。宿舍分配从可用宿舍链表中摘取第一间宿舍分配给学生。学生交回的宿舍挂在可用宿舍链表最后。备注:使用list容器或静态链表。不用考虑...原创 2018-10-16 10:51:27 · 1417 阅读 · 0 评论 -
串替换
题目描述给出主串、模式串、替换串,用KMP算法找出模式串在主串的位置,然后用替换串的字符替换掉模式串本题只考虑一处替换的情况,如果你想做的完美一些,能够实现多处替换那可能需要考虑模式串和替换串长度不一致的情况输入 第一个输入t,表示有t个实例第二行输入第1个实例的主串,第三行输入第1个实例的模式串,第四行输入第1个实例的替换串以此类推 输出第一行输出第1...原创 2018-10-10 00:15:06 · 2062 阅读 · 0 评论 -
KMP算法
输入第一个输入t,表示有t个实例第二行输入第1个实例的主串,第三行输入第1个实例的模式串以此类推输出第一行输出第1个实例的模式串的next值第二行输出第1个实例的匹配位置,位置从1开始计算,如果匹配成功输出位置,匹配失败输出0以此类推样例输入3 qwertyuiop tyu aabbccdd ccc aaaabababac abac样例输出-1 0 0 ...原创 2018-10-10 00:16:03 · 188 阅读 · 0 评论 -
DS二叉树——Huffman编码与解码
题目描述1、问题描述 给定n个字符及其对应的权值,构造Huffman树,并进行huffman编码和译(解)码。 构造Huffman树时,要求左子树根的权值小于、等于右子树根的权值。 进行Huffman编码时,假定Huffman树的左分支上编码为‘0’,右分支上编码为‘1’。 2、算法 构造Huffman树算法: ⑴ 根据给定的n个权值(w1, w...原创 2018-10-23 20:40:27 · 2072 阅读 · 0 评论 -
DS图应用--最短路径(迪杰特斯拉算法)
题目描述给出一个图的邻接矩阵,再给出指定顶点v0,求顶点v0到其他顶点的最短路径代码框架如下:输入第一行输入t,表示有t个测试实例第二行输入n,表示第1个图有n个结点第三行起,每行输入邻接矩阵的一行,以此类推输入n行第i个结点与其他结点如果相连则为1,无连接则为0,数据之间用空格隔开第四行输入v0,表示求v0到其他顶点的最短路径距离以此类推输入下一个...原创 2018-11-13 21:44:59 · 2238 阅读 · 0 评论