
数据结构题解
weixin_43244265
这个作者很懒,什么都没留下…
展开
-
二叉树
描述如上图所示,由正整数1,2,3……组成了一颗二叉树。我们已知这个二叉树的最后一个结点是n。现在的问题是,结点m所在的子树中一共包括多少个结点。比如,n = 12,m = 3那么上图中的结点13,14,15以及后面的结点都是不存在的,结点m所在子树中包括的结点有3,6,7,12,因此结点m的所在子树中共有4个结点。输入输入数据包括多行,每行给出一组测试数据,包括两个整数m,n (1 &...原创 2019-12-03 09:33:06 · 399 阅读 · 0 评论 -
二叉树的遍历问题(树和二叉树)
描述输入一棵二叉树的先序和中序遍历序列,输出其后序遍历序列。输入输入文件为tree.in,共两行,第一行一个字符串,表示树的先序遍历,第二行一个字符串,表示树的中序遍历。树的结点一律用小写字母表示。输出输出文件为tree.out,仅一行,表示树的后序遍历序列。样例输入abdecdbeac样例输出debcaAC代码:#include<iostream>#incl...原创 2019-12-03 09:30:06 · 179 阅读 · 0 评论 -
小白鼠再排队(字符串和数组)
N只小白鼠(1 < N < 100),每只鼠头上戴着一顶有颜色的帽子。现在称出每只白鼠的重量,要求按照白鼠重量从小到大的顺序输出它们头上帽子的颜色。帽子的颜色用 “red”,“blue”等字符串来表示。不同的小白鼠可以戴相同颜色的帽子。白鼠的重量用整数表示。输入输入第一行为一个整数N,表示小白鼠的数目。下面有N行,每行是一只白鼠的信息。第一个为正整数,表示白鼠的重量,;第二个为字...原创 2019-12-03 09:26:38 · 700 阅读 · 0 评论 -
Problem N:矩阵交换行(字符串的数组)
编写一个函数,输入参数是55的二维数组,和n,m两个行下标。功能:判断n,m是否在数组范围内,如果不在,则返回0;如果在范围内,则将n行和m行交换,并返回1。在main函数中, 生成一个55的矩阵,输入矩阵数据,并输入n,m的值。调用前面的函数。如果返回值为0,输出error。如果返回值为1,输出交换n,m后的新矩阵。输入5*5矩阵的数据,以及n和m的值。输出如果不可交换,则输出erro...原创 2019-12-03 09:24:59 · 650 阅读 · 0 评论 -
字符串加密(字符串和数组)
现要对一个由大写字母组成的字符串进行加密,有两种加密方法(1)替换法:把一个字母替换成它之后的第k个字母,比如AXZ,k取2,加密后得到CZB(Z之后第二个字符为B)(2)置换法:改变原来字符串中字母的顺序,比如将顺序<2 3 1>应用到ABC上得到的密文为BCA。(顺序<2 3 1>指将原字符串的第2个字符作为新字符串的第1个字符,将原字符串的第3个字符作为新字符串的...原创 2019-12-03 09:23:15 · 1947 阅读 · 3 评论 -
中位数(字符串和数组)
中位数定义:一组数据按从小到大的顺序依次排列,处在中间位置的一个数或最中间两个数据的平均值(如果这组数的个数为奇数,则中位数为位于中间位置的那个数;如果这组数的个数为偶数,则中位数是位于中间位置的两个数的平均值).给出一组无序整数,求出中位数,如果求最中间两个数的平均数,向下取整即可(不需要使用浮点数)输入该程序包含多组测试数据,每一组测试数据的第一行为N,代表该组测试数据包含的数据个数,1...原创 2019-12-03 09:21:14 · 424 阅读 · 0 评论 -
邮箱验证
POJ 注册的时候需要用户输入邮箱,验证邮箱的规则包括:1)有且仅有一个’@‘符号2)’@‘和’.‘不能出现在字符串的首和尾3)’@‘之后至少要有一个’.’,并且’@‘不能和’.'直接相连满足以上3条的字符串为合法邮箱,否则不合法,编写程序验证输入是否合法输入输入包含若干行,每一行为一个代验证的邮箱地址,长度小于100输出每一行输入对应一行输出如果验证合法,输出 YES如果验...原创 2019-12-03 09:17:40 · 1408 阅读 · 0 评论 -
求最大值(字符串,数组)
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...原创 2019-12-03 08:56:39 · 600 阅读 · 0 评论 -
队列基本操作(栈与队列)
描述输入若干个整数(小于50个),整数共有四种类型,不同类型的整数代表不同操作。说明如下:1、[10,99]之间的整数:将该整数入队。2、-1: 队首整数出队。3、-2: 显示队列所有整数。4、-3: 输入结束。说明:采用链队列实现,必须有队列初始化函数、入队函数、出队函数。输入第一行若干整数(必须满足上述四种类型要求),以-3结束。输出输出队列中所有整数。样例输入13 2...原创 2019-11-06 15:22:15 · 146 阅读 · 0 评论 -
括号匹配(栈与队列)
描述给定一个字符串,字符串只包含两种字符:左括号“(”和右括号”)”。请判断这些括号是否能匹配。如果能则输出Yes,不能则输出No。输入一行,括号序列(一个字符串)输出Yes/No样例输入((()))()()样例输出YesAC代码:基于很水的样例的计数#include<iostream>#include<algorithm>#include<...原创 2019-11-06 15:20:54 · 176 阅读 · 0 评论 -
后缀表达式求值(栈与队列)
描述输入一个后缀表达式,计算它的值。操作数和操作码之间都以空格分开。输入一行,后缀表达式输出一行,一个整数,为后缀表达式的值样例输入16 9 4 3 + * -样例输出-47AC代码#include<iostream>#include<cstdio>#include<algorithm>#include<cmath>us...原创 2019-11-06 15:17:31 · 336 阅读 · 0 评论 -
火车站中的驶出的火车(栈与队列)
描述有编号从1到N的N辆火车等待进入车站,而车站的容量是有限的,需要对火车进行调度。只有两种调度指令,进站和出站。现在车站给出了M个指令,请你输出在完成这些调度指令后,车站中驶出火车编号。输入两行第一行两个整数,N和M第二行为M个为-1或者为1的整数,-1代表出站,1代表入站输出一行整数,为驶出车站的火车编号样例输入3 31 -1 1样例输出1**注意:**进出站都是...原创 2019-11-06 15:12:35 · 1175 阅读 · 0 评论 -
周末舞会(栈与队列)
描述假设在周末舞会上,男士们和女士们进入舞厅时,各自排成一队。跳舞开始时,依次从男队和女队的队头上各出一人配成舞伴。规定每个舞曲能有一对跳舞者。若两队初始人数不相同,则较长的那一队中未配对者等待下一轮舞曲。现要求写一个程序,模拟上述舞伴配对问题。输入两行第一行两个整数n和m,分别为两队的长度第二行一个整数k,表示舞曲的数目输出k行,每行两个整数n1和m1,表示配对的编号样例输入4...原创 2019-11-06 15:09:55 · 850 阅读 · 0 评论 -
十进制转化为二进制(栈与队列)
描述进制之间的转换是很常见的操作输入一个正整数输出对应的二进制样例输入9样例输出1001提示可以用数组可以用递归可以用C++中的STL栈结构来轻松实现它。AC代码:#include<iostream>#include<cstdio>using namespace std;int a[100010];int t=0;void zhuan...原创 2019-11-06 15:08:25 · 1012 阅读 · 0 评论 -
整数顺序表的基本运算(线性表)
描述设计整数顺序表的基本运算程序,并用相关数据进行测试输入顺序输入顺序表A的元素个数及各个元素输出第一行:创建顺序表A后,输出所有元素第二行:删除第一个元素,输出删除后的所有元素第三行:输出删除元素后顺序表的长度第四行:在第二元素处插入一个新的元素100第五行:输出第一个元素100所在位置样例输入61 2 3 4 0 9样例输出1 2 3 4 0 92 3 4 0 9...原创 2019-11-06 15:06:15 · 1475 阅读 · 0 评论 -
集合合并(线性表)
已知集合A与集合B,且第个集合内数据是唯一的。求A,B集合合并成新的集合C,要求C集合内的数据也是唯一的。并指出C集合的个数。输入三行,第一行分别为集合A,B的个数第二行为A集合的数据第三行为B集合的数据输出两行第一行集合C的个数第二行为C集合的数据样例输入4 512 34 56 7834 67 89 34 76样例输出712 34 56 78 67 89 76提示...原创 2019-10-26 19:55:30 · 646 阅读 · 0 评论 -
非递减有序集合合并(线性表)
巳知线性表LA和线性表LB中的数据元素按值非递减有序排列,现要求将LA和LB归并为一个新的线性表LC,且LC中的元素仍按值非递减有序排列。输入三行,第一行A,B集合的个数n,m第二行:集合A的数据;第三行:集合B的数据。输出二行,第一行,集合C的个数k第二行:集合C的数据。样例输入11 122 4 6 7 8 9 12 34 56 78 893 5 7 9 12 34 5...原创 2019-10-26 19:53:59 · 906 阅读 · 0 评论 -
有序的双链表的实现(线性表)
定义有序的双链表类,链表中存储整型数据,创建带头结点的有序双链表,要求包含以下成员函数:双链表的构造函数(非空的链表,输入数据为0,表示输入结束)插入操作(将一个数据元素插入到有序的双链表中,插入之后链表仍然有序,输入数据为0表示插入操作结束)按值删除节点(考虑有重复值的情况)双链表的遍历操作双链表的析构输入输入链表中的元素,根据输入元素,创建有序双链表(非空的链表,输入数据为0,表...原创 2019-10-26 19:52:10 · 157 阅读 · 0 评论 -
单链表的实现(线性表)
定义单链表类,创建带头结点的单链表(节点类型为整型数据),要求包含以下成员函数:头插法创建单链表(利用构造函数实现)尾插法创建单链表(重载构造函数实现)链表的遍历按值删除一个节点按位置删除一个节点链表的析构输入输入一组数据,以尾插法的形式创建单链表(0表示输入结束)(构造第一个链表)输入一组数据,以头插法的形式创建单链表(0表示输入结束)(构造第二个链表)输入要删除元素的值(在...原创 2019-10-26 17:22:08 · 914 阅读 · 0 评论 -
构造有序的单链表(线性表)
构造有序(升序)的单链表并实现单链表的逆置(可以采用结构化的程序设计方法实现,即不必定义类)输入输入链表中的数据。(用0表示输入的结束,0不能添加到链表中)输出按顺序输出有序链表中的数据样例输入4 1 6 8 2 0样例输出1 2 4 6 88 6 4 2 1AC代码:#include<iostream>#include<algorithm>#...原创 2019-10-26 17:20:20 · 573 阅读 · 0 评论 -
约瑟夫环问题(线性表)
约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。输入8 1 3 (n=8 k=1 m=3 )输出7 (剩下的那个)样例输入8 3 1样例输出7思路:循环链表AC代码:#include<ios...原创 2019-10-26 17:18:56 · 926 阅读 · 0 评论