Algorithm
MirrorN
知来者之可追
展开
-
SDUT-2122 数据结构实验之链表七:单链表中重复元素的删除
数据结构实验之链表七:单链表中重复元素的删除 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Discuss Problem Description按照数据输入的相反顺序(逆位序)建立一个单链表,并将单链表中重复的元素删除(值相同的元素只保留最后输入的一个)。 Input第一行输入元素个数 n (1 第二行输入原创 2018-02-02 18:23:04 · 215 阅读 · 0 评论 -
无限循环小数转化分数
问题给出一个无限循环小数以及循环节,求原最简分数,例如输入 5.3 1 表示从小数点后一位开始循环,也就是循环小数是5.33333….. 输出结果是 16/3分析其实一个简单的数学结论就可以解决这个问题, 循环节有几位,就用循环节比上几个9,例如 3.141414….就用 14/99,3.145145145….就是145/999(当然,还要加上整数部分),如果用代码来实现的...原创 2018-08-09 10:52:47 · 9679 阅读 · 0 评论 -
二叉搜索树删除元素
概念二叉搜索树(Binary Search Tree)也称作是二叉排序树,它满足以下性质(如果不为空树):左子树非空则左子树上的所有值均小于根节点的值右子树非空则右子树上的所有值均大于根节点的值它的左右子树也分别是二叉搜索树了解了这些特点。下面来着重说一下BST如何删除元素:经过观察这些子树地位置关系,我们可以将所有地删除情况分为这几种:删除的节点是叶子节点删除的节...原创 2018-05-15 15:48:18 · 689 阅读 · 0 评论 -
SDUT最小生成树(并查集实现Kruskal算法)
题目描述Problem Description有n个城市,其中有些城市之间可以修建公路,修建不同的公路费用是不同的。现在我们想知道,最少花多少钱修公路可以将所有的城市连在一起,使在任意一城市出发,可以到达其他任意的城市。Input输入包含多组数据,格式如下。 第一行包括两个整数n m,代表城市个数和可以修建的公路个数。(n <= 100, m <=10000) 剩下...原创 2018-05-01 11:05:48 · 448 阅读 · 0 评论 -
人见人爱A^B --二分求幂
二分求幂计算A^B可以使用最直接的方法,即累乘,但是还有更简单的方式,例如计算2的32次方,假设计算到了2的16次方,我们还要继续重复这个乘2的过程么?更简单的方式是平方,这样就可以直接的到结果了,按照这种方式计算2的32次方,我们总共要计算6次,从2到2的平方,再到2的4次方,再到2的8次方,再到2的16次方,再到2的32次方,这样看来,其实二次求幂的方式就是将A^B转化为一系列A^N的乘积...原创 2018-04-11 16:35:24 · 198 阅读 · 0 评论 -
哈夫曼树&C++标准库优先队列
题目描述哈夫曼树,第一行输入一个数n,表示叶结点的个数。需要用这些叶结点生成哈夫曼树,根据哈夫曼树的概念,这些结点有权值,即weight,题目需要输出所有结点的值与权值的乘积之和。 输入描述: 输入有多组数据。 每组第一行输入一个数n,接着输入n个叶节点(叶节点权值不超过100,2<=n<=1000)。 输出描述: 输出权值。 示例1 输入5 1 2 2 5 9...原创 2018-03-30 16:42:34 · 718 阅读 · 0 评论 -
二叉树的层次遍历
二叉树层次遍历二叉树按照层次遍历其实就相当于广度优先搜索,都可以通过队列这种数据结构很清楚的实现:#include<stdio.h>#include<stdlib.h>#include<queue>#include<iostream>using namespace std;typedef struct node{ cha...原创 2018-03-14 12:39:54 · 360 阅读 · 0 评论 -
SDUT 2128 树结构练习 排序二叉树的中序遍历
排序二叉树的中序遍历题目Problem Description 在树结构中,有一种特殊的二叉树叫做排序二叉树,直观的理解就是——(1).每个节点中包含有一个关键值 (2).任意一个节点的左子树(如果存在的话)的关键值小于该节点的关键值 (3).任意一个节点的右子树(如果存在的话)的关键值大于该节点的关键值。现给定一组数据,请你对这组数据按给定顺序建立一棵排序二叉树,并输出其中序遍历的结果...原创 2018-03-13 10:55:08 · 570 阅读 · 0 评论 -
SDUT 3334 数据结构实验之栈与队列七:出栈序列判定
栈 :出栈顺序判断题目Problem Description 给一个初始的入栈序列,其次序即为元素的入栈次序,栈顶元素可以随时出栈,每个元素只能入栈依次。输入一个入栈序列,后面依次输入多个序列,请判断这些序列是否为所给入栈序列合法的出栈序列。例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个出栈序列,但4,3,5,1,2就不可能是该序列的出栈序列...原创 2018-03-12 15:03:44 · 379 阅读 · 0 评论 -
SDUT 2136 数据结构实验之二叉树的建立与遍历
图的广度优先遍历题目Problem Description 给定一个无向连通图,顶点编号从0到n-1,用广度优先搜索(BFS)遍历,输出从某个顶点出发的遍历序列。(同一个结点的同层邻接点,节点编号小的优先遍历)Input 输入第一行为整数n(0< n <100),表示数据的组数。 对于每组数据,第一行是三个整数k,m,t(0<k<100,0<m<(k-1)*k/2,0...原创 2018-03-11 16:42:34 · 154 阅读 · 0 评论 -
SDUT 2482 二叉排序树
二叉排序树 ##题目Problem Description 二叉排序树的定义是:或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。 今天我们要判断两序列是否为同一二叉排序树Input 开始一个数n,(1<=n<=2...原创 2018-03-10 10:43:43 · 232 阅读 · 0 评论 -
SDUT 2080 最长公共子序列问题
最长公共子序列题目Problem Description 给定两个序列X= Input 输入数据有多组,每组有两行 ,每行为一个长度不超过500的字符串(输入全是大写英文字母(A,Z)),表示序列X和Y。 Output 每组输出一行,表示所求得的最长公共子序列的长度,若不存在公共子序列,则输出0。 Sample Input ABCBDAB BDCABA Sample O...原创 2018-03-15 16:12:21 · 394 阅读 · 0 评论 -
数据结构基础-队列(循环队列、链式队列)以及STL中queue的使用
对于队列(Queue)是什么,再次不再赘述,与链表、栈的实现一样,队列作为一种特殊的线性表,也存在顺序存储以及链式存储两种方式。顺序存储的队列采用顺序存储的方式来存储队列,最简单的方式是对于n个元素的队列,开辟一个n大小的数组,入队操作即是在数组的尾部直接添加元素,出队操作即将0方向的元素移除,并将所有的后边元素全部前移一个,这与顺序表操作是一致的,但是自然会很麻烦,因此,又出现了另一...原创 2018-02-10 12:09:06 · 2513 阅读 · 0 评论 -
SDUT-1265 马拦过河卒
马拦过河卒 Time Limit: 3000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Description棋盘上A点有一个过河卒,需要走到目标B点。卒行走的规则:可以向下、或者向右。同时在棋盘上C点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点。因此称之为“马拦过河卒”。棋盘用坐标表示原创 2018-02-05 00:44:21 · 549 阅读 · 0 评论 -
错排问题的递推公式
问题描述考虑一个n个数字的排列,使所有的数字都不在自己所对应序号的位置上,这样的一个排列就称为原排列的一个错排,现在给定一个数字n,求解所有可能的错排的个数。分析首先使用 D(n)D(n)D\left ( n \right ) 表示n个数字的错排数目, D(n−1)D(n−1)D\left(n-1 \right)表示n-1个数字的全排列数目,以此类推,推导过程:对于第NNN个位置...原创 2018-08-15 09:18:29 · 3273 阅读 · 0 评论