数据结构
TheWise_lzy
已毕业,社畜一枚
展开
-
数据结构——逆波兰表示法
没想到第一次写数据结构就把我折腾死了呀~我看的是一本AOJ的书,然后以后的算法也是跟着书的目录来~题目的话会结合TOJ的一起写,可以对照着看哦~这个逆波兰表示法我就不多讲了,AOJ我用的堆栈。在这里我们可以运用栈的特点来实现后缀表达式,思路如下:1.首先当遇到运算操作数时将其进行push操作;2.当遇到操作符是将此时的栈pop两次,先取出的栈顶为右操作数;3原创 2017-01-30 18:11:10 · 3962 阅读 · 0 评论 -
L2-002. 链表去重
L2-002. 链表去重时间限制300 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者陈越给定一个带整数键值的单链表L,本题要求你编写程序,删除那些键值的绝对值有重复的结点。即对任意键值K,只有键值或其绝对值等于K的第一个结点可以被保留。同时,所有被删除的结点必须被保存在另外一个链表中。例如:另L为21→-15→-15→...原创 2018-02-26 21:40:19 · 154 阅读 · 0 评论 -
1151 LCA in a Binary Tree (30 分)
The lowest common ancestor (LCA) of two nodes U and V in a tree is the deepest node that has both U and V as descendants.Given any two nodes in a binary tree, you are supposed to find their LCA.In...原创 2019-03-29 14:19:26 · 214 阅读 · 0 评论 -
L3-010 是否完全二叉搜索树 (30 分)
L3-010是否完全二叉搜索树(30分)将一系列给定数字顺序插入一个初始为空的二叉搜索树(定义为左子树键值大,右子树键值小),你需要判断最后的树是否一棵完全二叉树,并且给出其层序遍历的结果。输入格式:输入第一行给出一个不超过20的正整数N;第二行给出N个互不相同的正整数,其间以空格分隔。输出格式:将输入的N个正整数顺序插入一个初始为空的二叉搜索树。在第一行中输出结果树的层...原创 2019-03-26 21:55:50 · 219 阅读 · 0 评论 -
7-10 公路村村通 (30 分) 最小生成树
7-10公路村村通(30分)现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本。输入格式:输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N);随后的M行对应M条道路,每行给出3个正整数,分别是该条道路直接连通的两个城镇的编号以及该道路改建的预算成本。为简单起见,城镇从1到N编号。输出格式:...原创 2019-03-27 21:19:59 · 789 阅读 · 0 评论 -
7-9 旅游规划 (25 分) 最短路
7-9旅游规划(25分)有了一张自驾旅游路线图,你会知道城市间的高速公路长度、以及该公路要收取的过路费。现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径。如果有若干条路径都是最短的,那么需要输出最便宜的一条路径。输入格式:输入说明:输入数据的第1行给出4个正整数N、M、S、D,其中N(2≤N≤500)是城市的个数,顺便假设城市的编号为0~(N−1);M是...原创 2019-03-27 21:28:57 · 836 阅读 · 0 评论 -
7-23 还原二叉树 (25 分)
7-23还原二叉树(25分)给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。输入格式:输入首先给出正整数N(≤50),为树中结点总数。下面两行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区别大小写)的字符串。输出格式:输出为一个整数,即该二叉树的高度。输入样例:9ABDFGHIECFDHGIBEAC输出样例:...原创 2019-03-27 21:51:17 · 461 阅读 · 0 评论 -
二叉树的最近公共祖先 (BSF和普通)
1.若二叉树是一个搜索二叉树看这个!https://blog.csdn.net/TheWise_lzy/article/details/99610262从树的根节点开始和两个节点作比较,如果当前节点的值比两个节点的值都大,则这两个节点的最近公共祖先节点一定在该节点的左子树中,则下一步遍历当前节点的左子树;如果当前节点的值比两个节点的值都小,则这两个节点的最近公共祖先节点一定在该节点的右子树...原创 2019-08-14 21:02:08 · 198 阅读 · 0 评论 -
1110 Complete Binary Tree (25 分) 判断是否为一棵完全二叉树
Given a tree, you are supposed to tell if it is a complete binary tree.Input Specification:Each input file contains one test case. For each case, the first line gives a positive integerN(≤20) wh...原创 2019-09-01 15:36:58 · 173 阅读 · 0 评论 -
1102 Invert a Binary Tree (25 分) 翻转二叉树并输出层次遍历和中序遍历
1102Invert a Binary Tree(25分)The following is from Max Howell @twitter:Google: 90% of our engineers use the software you wrote (Homebrew), but you can't invert a binary tree on a whiteboard so...原创 2019-09-02 20:22:16 · 159 阅读 · 0 评论 -
L2-004. 这是二叉搜索树吗?
L2-004. 这是二叉搜索树吗?时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者陈越一棵二叉搜索树可被递归地定义为具有下列性质的二叉树:对于任一结点,其左子树中所有结点的键值小于该结点的键值; 其右子树中所有结点的键值大于等于该结点的键值; 其左右子树都是二叉搜索树。所谓二叉搜索树的“镜像...原创 2018-02-26 23:04:29 · 369 阅读 · 0 评论 -
L2-006. 树的遍历
L2-006. 树的遍历给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列。这里假设键值都是互不相等的正整数。输入格式:输入第一行给出一个正整数N(<=30),是二叉树中结点的个数。第二行给出其后序遍历序列。第三行给出其中序遍历序列。数字间以空格分隔。输出格式:在一行中输出该树的层序遍历的序列。数字间以1个空格分隔,行首尾不得有多余空格。输入样例:7...原创 2018-02-28 01:06:57 · 203 阅读 · 0 评论 -
天梯赛训练 Windows消息队列(25 分)
7-11 Windows消息队列(25 分)消息队列是Windows系统的基础。对于每个进程,系统维护一个消息队列。如果在进程中有特定事件发生,如点击鼠标、文字改变等,系统将把这个消息加到队列当中。同时,如果队列不是空的,这一进程循环地从队列中按照优先级获取消息。请注意优先级值低意味着优先级高。请编辑程序模拟消息队列,将消息加到队列中以及从队列中获取消息。输入格式:输入首先给出正整数N...原创 2018-03-11 15:52:02 · 490 阅读 · 0 评论 -
数据结构——栈的使用
TOJ 1218描述请你定义一个栈,可以对栈进行“压入堆栈”、“弹出栈顶元素”、“清空堆栈”、“获取栈顶元素”等操作。键盘输入一些命令,可以执行上述操作。本题中,栈元素均为整数。栈的最大元素个数为1000。输入输入各个命令,它们对应的格式如下:压入堆栈:push a,a代表压入堆栈的元素,这里push和元素之间用空格分隔。清空堆栈:clear原创 2017-01-30 20:08:52 · 2651 阅读 · 0 评论 -
数据结构——队列的使用
TOJ 4368描述请你定义一个队列,可以对队列进行“入队”、“出队”、“队列输出”等操作。键盘输入一些命令,可以执行上述操作。本题中,队列中元素均为整数。队列的最大元素个数为1000。输入输入各个命令,它们对应的格式如下:入队:enq x,x代表入队的元素,这里enq和元素之间用空格分隔。队列输出:printq出队:deq当输入原创 2017-01-30 20:26:13 · 2326 阅读 · 0 评论 -
数据结构——队列的使用(二)
AOJ ALDS1_3_B:Queue(可怜的我AOJ打不开,题目只能拍下来了..)这道题精妙在使用了环形缓冲区(使之不会超出内存)。#include#include#define LEN 100005typedef struct pp{ char name[100]; int t;}p;p Q[LEN];int head,tail,n;void enqueue原创 2017-01-31 15:13:28 · 475 阅读 · 0 评论 -
数据结构——链表的使用
一如既往的打不开AOJ...题目如图。但是这篇不是题目为主的,主要讲一下链表的理解。我感觉是栈—>队列—>链表,都有联系。下面我讲的是双向链表。划重点:双向链表的结点是结构体(有数据本体,指向前后元素得指针组成)。这些结构体通过指针链接成一个链,就形成了双向链表。1.双向链表的结点struct Node{ int key; Node *next,*prev;原创 2017-01-31 21:29:26 · 463 阅读 · 0 评论 -
数据结构——树的遍历
二叉树概念:一棵树拥有一个根结点,且所有结点的子结点都不超过2。有序树概念:当子结点有特定顺序(左右之分)的树。前序遍历(Preorder) :按照根结点,左子树,右子树的顺序输出结点编号。中序遍历(Inorder) :按照左子树,根结点,右子树的顺序输出结点编号。后序遍历(Postorder):按照左子树,右子树,根结点的顺序输出结点编号。前序遍历void原创 2017-02-01 18:04:24 · 3321 阅读 · 0 评论 -
L2-011. 玩转二叉树
L2-011. 玩转二叉树时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者陈越给定一棵二叉树的中序遍历和前序遍历,请你先将树做个镜面反转,再输出反转后的层序遍历的序列。所谓镜面反转,是指将所有非叶结点的左右孩子对换。这里假设键值都是互不相等的正整数。输入格式:输入第一行给出一个正整数N(<=3...原创 2018-03-14 21:40:19 · 222 阅读 · 0 评论 -
TOJ3185 二叉树的遍历
描述对于一棵二叉树,有三种遍历。如果给出前序遍历和中序遍历,那么后序遍历是唯一确定的。但是如果只知道前序遍历和后序遍历,那么中序遍历是不确定的。例如前序遍历是ABCD,后序遍历是CBDA,那么中序遍历可以是 CBAD 或者 BCAD现在的问题是给出前序遍历和后序遍历,要求出中序遍历有多少种不同的方案。输入输入数据有多组,第一行为数据组数T,每组数据有两行,第一行是前序遍历,第二行是后序遍历,结点用...原创 2018-03-10 11:51:35 · 428 阅读 · 0 评论 -
先/中/后序遍历二叉树
给定一颗二叉树,要求输出二叉树的深度以及先序遍历二叉树得到的序列。本题假设二叉树的结点数不超过1000。输入输入数据分为多组,第一行是测试数据的组数n,下面的n行分别代表一棵二叉树。每棵二叉树的结点均为正整数,数据为0代表当前结点为空,数据为-1代表二叉树数据输入结束,-1不作处理。二叉树的构造按照层次顺序(即第1层1个整数,第2层2个,第3层4个,第4层有8个......,如果某个结点不存在以0...原创 2018-03-10 13:41:18 · 422 阅读 · 0 评论 -
TOJ4309 表达式求值 stack
描述Dr.Kong设计的机器人卡多掌握了加减法运算以后,最近又学会了一些简单的函数求值,比如,它知道函数min(20,23)的值是20 ,add(10,98) 的值是108等等。经过训练,Dr.Kong设计的机器人卡多甚至会计算一种嵌套的更复杂的表达式。假设表达式可以简单定义为:1. 一个正的十进制数 x 是一个表达式。2. 如果 x 和 y 是 表达式,则 函数min(x,y )也是表达式,其值...原创 2018-03-06 16:44:07 · 253 阅读 · 0 评论 -
TOJ1743 集合运算 Set
描述给定两个集合A和B的所有元素,计算它们的交、并、差集。输入输入数据有多组,第一行为数据的组数T,接下来有2T行,每组数据占2行,每行有若干个整数,第一行的所有整数构成集合A,第二行的所有整数构成集合B,分别用空格分隔。A和B最多分别不超过100个元素。输出输出A、B的交、并、差集中的所有元素(以递增顺序)。每个集合占一行,数据元素之间用空格分隔。(输入输出显示不出来... 用图片凑合一下吧.....原创 2018-03-05 22:29:42 · 428 阅读 · 0 评论 -
1125 Chain the Ropes (25 分)
Given some segments of rope, you are supposed to chain them into one rope. Each time you may only fold two segments into loops and chain them into one piece, as shown by the figure. The resulting chai...原创 2019-09-05 15:14:09 · 129 阅读 · 0 评论