Algorithm
文章平均质量分 55
【你不认识我】
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
列车厢调度(栈)
7-9 列车厢调度 (25 分) 1 ====== <--移动方向 / 3 ===== \ 2 ====== -->移动方向 大家或许在某些数据结构教材上见到过“列车厢调度问题”(当然没见过也不要紧)。今天,我们就来实际操作一下列车厢的调度。对照上方的ASCII字符图,问题描述如下:有...原创 2018-12-19 16:11:35 · 1286 阅读 · 1 评论 -
数组中的两个栈
PTA上关于栈的一道题,做完你就可以变得更强,妈妈再也不怕我被栈难倒了。 原题链接6-1 Two Stacks In One Array (20 分)Write routines to implement two stacks using only one array. Your stack routines should not declare an overflow unles...原创 2018-11-07 16:08:15 · 261 阅读 · 0 评论 -
矩阵乘法及其梯度
出的蛮有意思的题目7-1矩阵乘法及其梯度(20 分)矩阵乘法大家都不陌生,给定维度分别为m×n和n×p的两个矩阵A和B,其乘积可以表示C=A×B,C的维度为m×p,其中的元素可以表示为Ci,j=∑k=0n−1Ai,kBk,j。如果我们将矩阵A看作自变量,矩阵乘法可以看做是一个Rm×n↦Rm×p的函数,对于其中每一项Ai,j,它仅参与了形成...原创 2018-11-17 16:40:41 · 14227 阅读 · 4 评论 -
数据结构小结
1、front->rear,注意循环队列 2、 KMP的next[ ]数组,前缀包括本身,后缀不包括设xyxxyyx是模式串,则在进行KMP算法进行匹配时,它的next数组元素依次为( )。A A. 0112231 B. 0111123 C. 0111221 D. 01112233、数组下标从0开始 ...原创 2018-11-21 10:04:07 · 493 阅读 · 0 评论 -
01-复杂度3 二分查找 (20 分)
本题要求实现二分查找算法。函数接口定义:Position BinarySearch( List L, ElementType X );其中List结构定义如下:typedef int Position;typedef struct LNode *List;struct LNode { ElementType Data[MAXSIZE]; Position ...原创 2019-03-26 10:43:28 · 286 阅读 · 0 评论 -
双向链表的插入和删除
原创 2018-11-21 12:34:49 · 287 阅读 · 1 评论 -
两个有序链表序列的合并
PTA-7-1 两个有序链表序列的合并 (20 分)已知两个非降序链表序列S1与S2,设计函数构造出S1与S2合并后的新的非降序链表S3。输入格式:输入分两行,分别在每行给出由若干个正整数构成的非降序序列,用−1表示序列的结尾(−1不属于这个序列)。数字用空格间隔。输出格式:在一行中输出合并后新的非降序链表,数字间用空格分开,结尾不能有多余空格;若新链表为空,输出NULL。...原创 2018-11-20 18:44:27 · 307 阅读 · 0 评论 -
求链式表的表长
PTA-6-1 求链式表的表长 (10 分)本题要求实现一个函数,求链式表的表长。函数接口定义:int Length( List L );其中List结构定义如下:typedef struct LNode *PtrToLNode;struct LNode { ElementType Data; PtrToLNode Next;};typedef Pt...原创 2018-11-20 17:54:29 · 493 阅读 · 0 评论 -
循环链表——约瑟夫环
PTA 7-2 约瑟夫环 (25 分)N个人围成一圈顺序编号,从1号开始按1、2、3......顺序报数,报p者退出圈外,其余的人再从1、2、3开始报数,报p的人再退出圈外,以此类推。 请按退出顺序输出每个退出人的原序号。输入格式:输入只有一行,包括一个整数N(1<=N<=3000)及一个整数p(1<=p<=5000)。输出格式:按退出顺序输出每个退出人...原创 2018-11-20 16:54:37 · 2194 阅读 · 0 评论 -
Insert or Merge(如何判断插入和合并排序)
7-2 Insert or Merge (25 分)According to Wikipedia:Insertion sort iterates, consuming one input element each repetition, and growing a sorted output list. Each iteration, insertion sort removes one ...原创 2018-12-23 22:45:39 · 387 阅读 · 0 评论 -
归并排序(递归和非递归)
思路:1、分:mid=(first+last)/2,头节点,尾节点,分界点,让分别有序,再合并。2、治:和合并两个有序链表很类似,O(m+n)时间复杂度。待更新。。。...原创 2018-12-22 22:03:00 · 208 阅读 · 0 评论 -
选择排序
从完整的数组不停缩减,每一次排序都使最小的元素排在最前面,有一点递归的味道。待更新。。。。原创 2018-12-22 13:23:58 · 181 阅读 · 0 评论 -
堆排序
几个关键点:1、对某一节点,2*i+1是左节点,2*i+2是右节点。2、n/2-1才有子节点,故只需扫描这些。3、若父亲小于孩子中的较大者,则交换。4、构造好大顶堆后将根节点与尾节点交换,重新调整。待更新。。。...原创 2018-12-22 14:03:44 · 176 阅读 · 0 评论 -
字符串转数字运算——计算火车运行时间
PTA-7-22 计算火车运行时间 (15 分)本题要求根据火车的出发时间和达到时间,编写程序计算整个旅途所用的时间。输入格式:输入在一行中给出2个4位正整数,其间以空格分隔,分别表示火车的出发时间和到达时间。每个时间的格式为2位小时数(00-23)和2位分钟数(00-59),假设出发和到达在同一天内。输出格式:在一行输出该旅途所用的时间,格式为“hh:mm”,其中hh为2位小...原创 2018-11-22 13:17:37 · 712 阅读 · 0 评论 -
字符串分割拼接
手动实现split和join(滑稽)7-2 字符串分割拼接 (20 分)很多人抱怨C中的字符串太过难用,其接口太过老旧。例如,字符串的分割(strtok)、链接(strcat)。这一次,我们自己动手实现更现代接口split和join。函数split接受分隔符c,可以将字符串以字符p为分割成若干个数组,例如&quot;abbc&quot;,如果以’b’进行split,会变成数组[“a”, “”, “c”],而以’...原创 2018-11-05 00:30:45 · 2397 阅读 · 3 评论 -
朴素算法查找子串(PTA)
这是一道PTA上关于字符串的一道水题,可以为KMP打铺垫6-2(朴素算法) 查找子串 (20 分)本题要求实现一个字符串查找的简单函数。函数接口定义:char *search( char *s, char *t );函数search在字符串s中查找子串t,返回子串t在s中的首地址。若未找到,则返回NULL。裁判测试程序样例:#include &lt;stdio.h&gt;#defi...原创 2018-11-04 17:20:46 · 870 阅读 · 0 评论 -
PTA—逆散列问题
7-8 逆散列问题 (30 分)给定长度为 N 的散列表,处理整数最常用的散列映射是 H(x)=x%N。如果我们决定用线性探测解决冲突问题,则给定一个顺序输入的整数序列后,我们可以很容易得到这些整数在散列表中的分布。例如我们将 1、2、3 顺序插入长度为 3 的散列表HT[]后,将得到HT[0]=3,HT[1]=1,HT[2]=2的结果。但是现在要求解决的是“逆散列问题”,即给定整数在散列...原创 2018-12-19 11:20:04 · 1821 阅读 · 0 评论 -
PTA-修理牧场
7-8 修理牧场 (25 分)农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数Li个长度单位,于是他购买了一条很长的、能锯成N块的木头,即该木头的长度是Li的总和。但是农夫自己没有锯子,请人锯木的酬金跟这段木头的长度成正比。为简单起见,不妨就设酬金等于所锯木头的长度。例如,要将长度为20的木头锯成长度为8、7和5的三段,第一次锯木头花费20,将木头锯...原创 2018-12-13 15:04:34 · 618 阅读 · 0 评论 -
循环队列
理解上:我对于队列的一些理解:First on first off,先进先出,rear在尾,移动一次添加一个,front在头,移动一次减一个。 下面这个图,front和rear都是向右移动,很好理解。 代码实现上:那么现在的难点就是在代码的实现上,当然,多练肯定可以会。加油! #include<stdio.h>#include<stdlib.h>...原创 2018-11-07 19:36:54 · 333 阅读 · 0 评论 -
hdu畅通工程
畅通工程Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 72355 Accepted Submission(s): 38573 Problem Description某省调查城镇交通状况,得到现有城镇道路统计表,表中列...原创 2018-12-15 13:07:18 · 242 阅读 · 0 评论 -
广义表存储结构
原创 2018-11-21 12:48:09 · 528 阅读 · 0 评论 -
稀疏矩阵加法
PTA-7-1 稀疏矩阵加法 (20 分)给定两个矩阵A和B,求其和矩阵C=A+B。输入格式:第一行包含两个数Row和Col,分别表示矩阵的行数和列数,A和B的维度是一致的。第二行只有一个数N1,表示接下来要输入的A中的非零元素的个数。接下来是N1行,每一行都是i j A[i,j] 这样的形式,表示的A中第i行第j列的元素A[i,j],为了与大多数编程语言保持一致,...原创 2018-11-20 18:48:27 · 2568 阅读 · 2 评论 -
(DFS)PTA—Saving James Bond - Easy Version
7-5 Saving James Bond - Easy Version (25 分)This time let us consider the situation in the movie "Live and Let Die" in which James Bond, the world's most famous spy, was captured by a group of drug d...原创 2018-12-18 20:54:55 · 331 阅读 · 0 评论 -
欧拉回路—哥尼斯堡的“七桥问题”
7-1 哥尼斯堡的“七桥问题” (25 分)哥尼斯堡是位于普累格河上的一座城市,它包含两个岛屿及连接它们的七座桥,如下图所示。可否走过这样的七座桥,而且每桥只走过一次?瑞士数学家欧拉(Leonhard Euler,1707—1783)最终解决了这个问题,并由此创立了拓扑学。这个问题如今可以描述为判断欧拉回路是否存在的问题。欧拉回路是指不令笔离开纸面,可画过图中每条边仅一次,且可以回...原创 2018-12-18 17:18:41 · 794 阅读 · 0 评论 -
公路村村通—最小生成树(Prim,Kruskal)
7-10 公路村村通 (30 分)现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本。输入格式:输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N);随后的M行对应M条道路,每行给出3个正整数,分别是该条道路直接连通的两个城镇的编号以及该道路改建的预算成本。为简单起见,城镇从1到N编号。输出格式:...原创 2018-12-17 20:53:25 · 322 阅读 · 0 评论 -
汉密尔顿回路
7-2 汉密尔顿回路 (25 分)著名的“汉密尔顿(Hamilton)回路问题”是要找一个能遍历图中所有顶点的简单回路(即每个顶点只访问 1 次)。本题就要求你判断任一给定的回路是否汉密尔顿回路。输入格式:首先第一行给出两个正整数:无向图中顶点数 N(2<N≤200)和边数 M。随后 M 行,每行给出一条边的两个端点,格式为“顶点1 顶点2”,其中顶点从 1 到N 编号。再下一行...原创 2018-12-16 22:22:17 · 1060 阅读 · 0 评论 -
欧拉图(路径)与哈密顿图(通路)
无向图:欧拉图:每个点度数偶数欧拉路径:两个点奇数,其余偶数参考资料:欧拉图(路径)原创 2018-12-04 23:20:14 · 1104 阅读 · 0 评论 -
键树
待更新。。。原创 2018-12-24 11:30:06 · 332 阅读 · 0 评论 -
BST与AVL
参考资料:30分钟让你懂AVL原创 2018-12-10 12:19:18 · 542 阅读 · 0 评论 -
是否完全二叉搜索树
PTA-7-3 是否完全二叉搜索树 (30 分)将一系列给定数字顺序插入一个初始为空的二叉搜索树(定义为左子树键值大,右子树键值小),你需要判断最后的树是否一棵完全二叉树,并且给出其层序遍历的结果。输入格式:输入第一行给出一个不超过20的正整数N;第二行给出N个互不相同的正整数,其间以空格分隔。输出格式:将输入的N个正整数顺序插入一个初始为空的二叉搜索树。在第一行中输出结果树的...原创 2018-12-09 13:20:41 · 329 阅读 · 0 评论 -
中序遍历和后序遍历求类层序遍历
PTA-ZigZagging on a Tree (25 分)Suppose that all the keys in a binary tree are distinct positive integers. A unique binary tree can be determined by a given pair of postorder and inorder traversal se...原创 2018-12-05 15:22:17 · 461 阅读 · 0 评论 -
List Leaves树的层序遍历
mid-14. List Leaves (15 分)Given a tree, you are supposed to list all the leaves in the order of top down, and left to right.Input Specification:Each input file contains one test case. For each c...原创 2018-12-05 00:46:54 · 232 阅读 · 0 评论 -
二叉搜索树删除节点
PTA-7-2 Delete Nodes in a Binary Search Tree (25 分)Given a binary search tree with no same keys, you should output the level-order traversal sequence of this tree after some nodes are deleted.When...原创 2018-12-01 22:55:50 · 1382 阅读 · 1 评论 -
树种统计
PTA-7-1 树种统计 (25 分)随着卫星成像技术的应用,自然资源研究机构可以识别每一棵树的种类。请编写程序帮助研究人员统计每种树的数量,计算每种树占总数的百分比。输入格式:输入首先给出正整数N(≤105),随后N行,每行给出卫星观测到的一棵树的种类名称。种类名称由不超过30个英文字母和空格组成(大小写不区分)。输出格式:按字典序递增输出各种树的种类名称及其所占总数的...原创 2018-11-26 18:54:47 · 288 阅读 · 0 评论 -
用队列按层序输出二叉树
思路:1、利用队列先进先出的特点2、根结点进队3、根结点出队,它的左孩子进队,右孩子进队4、左孩子出队,左孩子的左孩子进队,左孩子的右孩子进队 ...原创 2018-11-20 18:52:19 · 637 阅读 · 0 评论 -
树的同构
PTA 7-5 树的同构 (25 分)给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。 图1图2现给定两棵树,请你判断它们是否是同构的。 输入格式:输入给出2棵二叉树树的信息。对于每...原创 2018-11-20 10:46:15 · 209 阅读 · 0 评论 -
树的遍历
PTA 7-3 树的遍历 (25 分)给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。输入格式:输入第一行给出一个正整数N(≤30),是二叉树中结点的个数。第二行给出其后序遍历序列。第三行给出其中序遍历序列。数字间以空格分隔。输出格式:在一行中输出该树的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。输入样例:...原创 2018-11-19 01:31:20 · 325 阅读 · 0 评论 -
KD树
树的生成步骤:1、先计算所有数的x方差和y方差,哪个大以哪个作为域,例子中x方差大,x域中7是中位数,故作为根结点。x比7小的放到左子树,比7大的放右子树。2、继续比较左子树的x方差和y方差,递归进行如上操作,得到二叉树。3、(2.1,3.1)。(7,2)是按x域建立的,2比7小,故进入左子树,(5,4)是按y域建立的,3比4小,进入左子树。回溯:搜索路径中的节点为<...原创 2019-06-18 16:55:15 · 507 阅读 · 0 评论 -
正则表达式
一种字符串匹配规则http://tool.chinaz.com/Tools/regexgenerate在线生成各种正则表达式的的网站待更新。。。原创 2019-03-21 20:41:49 · 247 阅读 · 0 评论
分享