数据结构
暖i
这个作者很懒,什么都没留下…
展开
-
1750:全排列
总时间限制: 1000ms 内存限制: 65536kB描述给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列。 我们假设对于小写字母有’a’ < ‘b’ < … < ‘y’ < ‘z’,而且给定的字符串中的字母已经按照从小到大的顺序排列。输入输入只有一行,是一个由不同的小写字母组成的字符串,已知字符串的长度在1到6之间。输出输出这个字符串的所有排列...原创 2019-03-05 19:33:51 · 798 阅读 · 0 评论 -
1052 Linked List Sorting
这题是稍微复杂一点的静态链表,读懂题意还是很好写的但是还是有几点不足1.遍历,题目给的几个并不是都是在链表上的,2.sort 自定义的cmp很重要,题目要求按照节点的大小输出,先把有意义的节点排在前面,然后再按照key的值排,好久没写cmp了,我觉得题解里cmp这个写法是最重要的,按照我自己往常的写法不大好写,这里是如果有一个是无效节点的话就把无效节点排在后面,否则按key值排,第一次接触,...原创 2019-04-08 21:22:58 · 81 阅读 · 0 评论 -
1360:奇怪的电梯(lift)
【题目描述】大楼的每一层楼都可以停电梯,而且第i层楼(1≤i≤N)上有一个数字Ki(0≤=Ki≤=N)。电梯只有四个按钮:开,关,上,下。上下的层数等于当前楼层上的那个数字。当然,如果不能满足要求,相应的按钮就会失灵。例如:3 3 1 2 5代表了Ki(K1=3,K2=3,……),从一楼开始。在一楼,按“上”可以到4楼,按“下”是不起作用的,因为没有-2楼。那么,从A楼到B楼至少要按几次按钮呢?...原创 2019-08-29 19:20:48 · 1482 阅读 · 0 评论 -
1339:【例3-4】求后序遍历
【题目描述】输入一棵二叉树的先序和中序遍历序列,输出其后序遍历序列。【输入】共两行,第一行一个字符串,表示树的先序遍历,第二行一个字符串,表示树的中序遍历。树的结点一律用小写字母表示。【输出】一行,表示树的后序遍历序列。【输入样例】abdecdbeac【输出样例】debca【来源】No题目只要求后序遍历,并不要还原一棵树,后续遍历是左右根,所以递归的时候只要根右左,然后逆...原创 2019-09-06 18:32:17 · 685 阅读 · 0 评论 -
1340:【例3-5】扩展二叉树
【题目描述】由于先序、中序和后序序列中的任一个都不能唯一确定一棵二叉树,所以对二叉树做如下处理,将二叉树的空结点用·补齐,如图所示。我们把这样处理后的二叉树称为原二叉树的扩展二叉树,扩展二叉树的先序和后序序列能唯一确定其二叉树。现给出扩展二叉树的先序序列,要求输出其中序和后序序列。【输入】扩展二叉树的先序序列。【输出】输出其中序和后序序列。【输入样例】ABD…EF…G…C…【输出...原创 2019-09-06 19:52:29 · 2137 阅读 · 0 评论 -
1363:小球(drop)
【题目描述】许多的小球一个一个的从一棵满二叉树上掉下来组成FBT(Full Binary Tree,满二叉树),每一时间,一个正在下降的球第一个访问的是非叶子节点。然后继续下降时,或者走右子树,或者走左子树,直到访问到叶子节点。决定球运动方向的是每个节点的布尔值。最初,所有的节点都是false,当访问到一个节点时,如果这个节点是false,则这个球把它变成true,然后从左子树走,继续它的旅程。...原创 2019-09-07 15:40:38 · 954 阅读 · 0 评论 -
1364:二叉树遍历(flist)
【题目描述】树和二叉树基本上都有先序、中序、后序、按层遍历等遍历顺序,给定中序和其它一种遍历的序列就可以确定一棵二叉树的结构。假定一棵二叉树一个结点用一个字符描述,现在给出中序和按层遍历的字符串,求该树的先序遍历字符串。【输入】两行,每行是由字母组成的字符串(一行的每个字符都是唯一的),分别表示二叉树的中序遍历和按层遍历的序列。【输出】一行,表示二叉树的先序序列。【输入样例】DBE...原创 2019-09-07 16:54:42 · 772 阅读 · 0 评论 -
1365:FBI树(fbi)
【题目描述】我们可以把由“0”和“1”组成的字符串分为三类:全“0”串称为B串,全“1”串称为I串,既含“0”又含“1”的串则称为F串。FBI树是一种二叉树,它的结点类型也包括F结点,B结点和I结点三种。由一个长度为2N的“01”串S可以构造出一棵FBI树T,递归的构造方法如下:T的根结点为R,其类型与串S的类型相同;若串S的长度大于1,将串S从中间分开,分为等长的左右子串S1和S2;由左...原创 2019-09-09 11:18:23 · 1750 阅读 · 1 评论 -
1366:二叉树输出(btout)
【题目描述】树的凹入表示法主要用于树的屏幕或打印输出,其表示的基本思想是兄弟间等长,一个结点的长度要不小于其子结点的长度。二叉树也可以这样表示,假设叶结点的长度为1,一个非叶结点的长度等于它的左右子树的长度之和。一棵二叉树的一个结点用一个字母表示(无重复),输出时从根结点开始:每行输出若干个结点字符(相同字符的个数等于该结点长度),如果该结点有左子树就递归输出左子树;如果该结点有右子树就...原创 2019-09-09 16:11:00 · 1024 阅读 · 0 评论 -
1032 Sharing
静态链表的引用,总的来说相对简单,我觉得比乙级的链表简单点,这个关键点是结构体里有一个flag标记这个字母出没出现过#include<iostream>#include<cstdio>using namespace std;const int maxn = 100000 + 10;struct Node{ char data; int next; bool ...原创 2019-04-08 20:15:29 · 111 阅读 · 0 评论 -
链表基础 c++
链表有动态和静态两种1.动态动态链表可以带头结点(head)也可以不带,动态的写法要先申请空间申请空间有2种写法1)malloc 头文件stdlib.hint* p=(int*)malloc(sizeof(int));node* p=(node*)malloc(sizeof(node))`因为malloc返回的是指针类型,所以还要强制转换2)new运算符int* p=new i...原创 2019-04-08 19:33:51 · 142 阅读 · 0 评论 -
1788:Pell数列
总时间限制: 3000ms 内存限制: 65536kB描述Pell数列a1, a2, a3, …的定义是这样的,a1 = 1, a2 = 2, … , an = 2 * an − 1 + an - 2 (n > 2)。给出一个正整数k,要求Pell数列的第k项模上32767是多少。输入第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个正整数k (1 ≤ k &...原创 2019-03-06 17:10:51 · 1257 阅读 · 0 评论 -
UVa 540 团体队列
题目:Queues and Priority Queues are data structures which are known to most computer scientists. The Team Queue, however, is not so well known, though it occurs often in everyday life. At lunch time the...原创 2019-03-19 21:23:49 · 278 阅读 · 0 评论 -
括号匹配c++
第一次用栈(stack) 这种题我觉得天生栈思想,这题主要做法是 左括号入栈,遇到右括号 从栈里取出和栈.top匹配,#include&lt;iostream&gt;#include&lt;stack&gt;#include&lt;cstdlib&gt;#include&lt;cstring&gt;using namespace std;bool left(char原创 2019-03-12 08:50:08 · 1463 阅读 · 0 评论 -
约瑟夫环
N个人坐成一个圆环(编号为1 - N),从第1个人开始报数,数到K的人出列,后面的人重新从1开始报数。问最后剩下的人的编号。例如:N = 3,K = 2。2号先出列,然后是1号,最后剩下的是3号。输入2个数N和K,表示N个人,数到K出列。(2 <= N, K <= 10^6)输出最后剩下的人的编号输入样例3 2输出样例3简单模拟#include<iostre...原创 2019-03-20 20:35:03 · 638 阅读 · 0 评论 -
合并果子
题目描述在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。 多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。 假定每个果子...原创 2019-03-24 19:20:30 · 192 阅读 · 0 评论 -
丑数
丑数指不能被2,3,5以外的其他的素数整除。把丑数从小到大排列起来,结果如下1,2,3,4,5,6,8,9,10,12,15 .。。。求第1500个最近刚学了优先队列,所用用优先队列做,网上还有很多方法#include<iostream>#include<cstdio>#include<queue>#include<set>using ...原创 2019-03-22 21:18:28 · 120 阅读 · 0 评论 -
1357:车厢调度(train)
【题目描述】有一个火车站,铁路如图所示,每辆火车从A驶入,再从B方向驶出,同时它的车厢可以重新组合。假设从A方向驶来的火车有n节(n≤1000),分别按照顺序编号为1,2,3,…,n。假定在进入车站前,每节车厢之间都不是连着的,并且它们可以自行移动到B处的铁轨上。另外假定车站C可以停放任意多节车厢。但是一旦进入车站C,它就不能再回到A方向的铁轨上了,并且一旦当它进入B方向的铁轨,它就不能再回到车...原创 2019-04-03 21:23:17 · 1343 阅读 · 0 评论 -
计算中缀表达式
中缀表达式目前只大概会了 0-9的处理,实数处理目前还不会,这几天在请教下别人之后再补上。1.九度OJ题目1019:简单计算器 (不带括号,实数)2.带括号 0-9只要问题还是中缀表式式和后缀表达式的转换以及后缀表达式的计算主要思路先看带括号 0-9这里括号只有(),且输入合法1.中缀转后缀中缀表达式为:1+(2-3)*4+4/2对应后缀表达式为:1 2 3 - 4* + 4...原创 2019-04-02 20:04:53 · 2715 阅读 · 0 评论 -
1368:对称二叉树(tree_c)
【题目描述】如果二叉树的左右子树的结构是对称的,即两棵子树皆为空,或者皆不空,则称该二叉树是对称的。编程判断给定的二叉树是否对称.例:如下图中的二叉树T1是对称的,T2是不对称的。二叉树用顺序结构给出,若读到#则为空,二叉树T1=ABCDE,T2=ABCD#E,如果二叉树是对称的,输出“Yes”,反之输出“No”。【输入】二叉树用顺序结构给出,若读到#则为空。【输出】如果二叉树是对...原创 2019-09-10 17:14:47 · 2501 阅读 · 0 评论