自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 收藏
  • 关注

原创 使用Golang+腾讯云实现文字识别/健康码识别等,并使用Docker部署Goweb到阿里云服务器上

从B站上看到的一个不错的Golang项目,避免自己遗忘,记录一下。

2024-03-11 20:26:14 973

原创 Windows使用Redis

主要是记录一下,免得自己忘了。

2023-12-04 15:31:08 1663

原创 使用Docker部署springboot+mysql项目

一直埋头学一些项目,没有考虑过怎么部署一个项目,一天突发奇想挺想试试部署个springboot,就网上搜了挺多资料的,但是资料太繁杂了,这里自己记录一下部署的过程,避免自己遗忘,也为其他小伙伴做个参考。这里是租的阿里云服务器,然后在本地做了一个非常简单的springboot样例,之后加了点mysql数据库,ok,来看看怎么将本地项目部署到云服务器上。在my_springboot目录下,新建一个Dockerfile,之前那个用来下载安装JDK17的Dockerfile可以改个名字了。

2023-11-22 13:42:54 763

原创 简单数学及一些工具

筛质数筛1~n中的质数,线性筛int get(int n){ int cnt = 0; for(int i = 2;i <= n;i ++) { if(!st[i]) { primes[++cnt] = i; } //每次用最小质因数去筛 for(int j = 1;primes[j] <= n/i ; j ++) {

2022-04-06 22:26:12 254

原创 二分图的最大匹配

给定一个二分图,其中左半部包含 n1 个点(编号 1∼n1),右半部包含 n2 个点(编号 1∼n2),二分图共包含 m 条边。数据保证任意一条边的两个端点都不可能在同一部分中。请你求出二分图的最大匹配数。二分图的匹配:给定一个二分图 G,在 G 的一个子图 M 中,M 的边集 {E} 中的任意两条边都不依附于同一个顶点,则称 M 是一个匹配。二分图的最大匹配:所有匹配中包含边数最多的一组匹配被称为二分图的最大匹配,其边数即为最大匹配数。输入格式第一行包含三个整数 n1、 n2 和 m。接下来

2022-04-06 19:09:27 246

原创 染色法判定二分图

给定一个 n 个点 m 条边的无向图,图中可能存在重边和自环。请你判断这个图是否是二分图。输入格式第一行包含两个整数 n 和 m。接下来 m 行,每行包含两个整数 u 和 v,表示点 u 和点 v 之间存在一条边。输出格式如果给定图是二分图,则输出 Yes,否则输出 No。数据范围1≤n,m≤105输入样例:4 41 31 42 32 4输出样例:Yes#include <iostream>#include <cstring>using nam

2022-04-06 18:09:53 335

原创 递归实现指数型、排列型、组合型枚举

指数型#include <iostream>using namespace std;const int N = 15;int st[N],num[N];int n;void dfs(int u){ if(u > n) { for(int i = 1;i <= n ;i ++) { if(st[i] == 1) cout <<i<<" "

2022-02-28 07:56:54 233

原创 回文平方---(舒服)

回文数是指数字从前往后读和从后往前读都相同的数字。例如数字 12321 就是典型的回文数字。现在给定你一个整数 B,请你判断 1∼300 之间的所有整数中,有哪些整数的平方转化为 B 进制后,其 B 进制表示是回文数字。输入格式一个整数 B。输出格式每行包含两个在 B 进制下表示的数字。第一个表示满足平方值转化为 B 进制后是回文数字那个数,第二个数表示第一个数的平方。所有满足条件的数字按从小到大顺序依次输出。数据范围2≤B≤20,对于大于 9 的数字,用 A 表示 10,用 B 表示

2021-12-30 16:16:26 76

原创 1129 Recommendation System (25 分)

Recommendation system predicts the preference that a user would give to an item. Now you are asked to program a very simple recommendation system that rates the user’s preference by the number of times that an item has been accessed by this user.Input Spe

2021-12-16 14:14:09 91

原创 1014 Waiting in Line (30 分)

假设一家银行有 N 个服务窗口。窗户前面有一条黄线,将等候区分为两部分。客户排队等候的规则是:在黄线以内的区域,每个窗口前都可以排一队人,每队最多可以排 M 个人,当 N 个窗口前的队伍都排满时,第 NM+1 个顾客以及以后的顾客只能在黄线以外的区域等候。黄线外的所有客户统一排成一个长队。每当客户进入黄线以内时,他会选择到当前排队人数最少的窗口处排队等待办理业务。当多个窗口前排队人数最少时,客户会选择窗口编号更小的窗口处排队等待办理业务。第 i 名客户的办理业务时长为 Ti。最开始的 N 名客户

2021-12-16 13:05:08 90

原创 PAT 排名

编程能力测试(PAT)由浙江大学计算机科学与技术学院组织。每次测试都会在多个地区同时进行,测试完成后,将会对成绩进行统计与合并,生成总排名。你的任务就是编写一个程序,将各地区人员的成绩合并汇总,生成最终排名。输入格式第一行包含整数 N,表示测试将会在 N 个地区同时进行。接下来是 N 个地区的成绩列表。每个地区的成绩列表,第一行包含整数 K,表示该地区的测试人数。接下来 K 行,每行包含一个学生的考号(13 位数字)以及该学生的成绩。输出格式第一行输出总考生人数。然后用以下格式输出最终成

2021-12-14 16:06:30 214

原创 pop sequence 弹出序列、出栈序列判定

给定一个最多能存 M 个数字的栈,将 1∼N 按顺序压入栈中,过程中可随机弹出栈顶元素。当 N 个数字都经历过入栈和出栈后,我们按照元素出栈的顺序,可以得到一个弹出序列。现在给定一系列 1∼N 的随机排列序列,请你判断哪些序列可能是该栈的弹出序列。例如,当 N=7,M=5 时,1, 2, 3, 4, 5, 6, 7可能是该栈的弹出序列,而 3, 2, 1, 7, 5, 6, 4 不可能是该栈的弹出序列。输入格式第一行包含三个整数 M,N,K,分别表示栈的容量,数字个数,需要判断的序列个数。接下来

2021-12-12 17:26:02 948

原创 递归实现指数型枚举、排列型枚举、组合型枚举

从 1∼n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案。输入格式输入一个整数 n。输出格式每行输出一种方案。同一行内的数必须升序排列,相邻两个数用恰好 1 个空格隔开。对于没有选任何数的方案,输出空行。本题有自定义校验器(SPJ),各行(不同方案)之间的顺序任意。数据范围1≤n≤15输入样例:3输出样例:322 311 31 21 2 3#include <bits/stdc++.h>using namespace std;const

2021-12-12 11:45:11 405

原创 拓扑排序应用——家谱树、可达性统计

有个人的家族很大,辈分关系很混乱,请你帮整理一下这种关系。给出每个人的孩子的信息。输出一个序列,使得每个人的孩子都比那个人后列出。输入格式第 1 行一个整数 n ,表示家族的人数;接下来 n 行,第 i 行描述第 i 个人的孩子;每行最后是 0 表示描述完毕。每个人的编号从 1 到 n 。输出格式输出一个序列,使得每个人的孩子都比那个人后列出;数据保证一定有解,如果有多解输出任意一解。数据范围1≤n≤100输入样例:504 5 1 01 05

2021-12-12 10:39:48 259

原创 插入还是堆排序、插入还是归并

根据维基百科:插入排序迭代,每次将一个插入元素插入到排好序的输出序列中,每次迭代插入排序都会从输入数据中移除一个元素,并在已排好序的序列中找到它所属的位置,然后将其插入。直到没有输入元素剩余为止。堆排序将其输入分为已排序和未排序两个区域,并通过提取未排序区域中的最大元素并将其移至已排序的区域来迭代地缩小未排序的区域。它通过使用堆数据结构而非线性时间搜索来找到最大值。现在,给定初始序列,以及经过某种排序方法多次迭代后的序列,请你判断我们使用的哪一种排序方法。输入格式第一行包含整数 N,表示序列中整数

2021-12-10 20:15:00 243

原创 双指针应用——最长连续不重复子序列、最长回文子串

给定一个长度为 n 的整数序列,请找出最长的不包含重复的数的连续区间,输出它的长度。输入格式第一行包含整数 n。第二行包含 n 个整数(均在 0∼105 范围内),表示整数序列。输出格式共一行,包含一个整数,表示最长的不包含重复的数的连续区间的长度。数据范围1≤n≤105输入样例:51 2 2 3 5输出样例:3一开始自己想的比较繁琐#include <bits/stdc++.h>using namespace std;const int N = 10001

2021-12-09 20:06:11 76

原创 一些排序算法

更多排序算法可以看这位作者的冒泡排序,下标从0开始的,要是从1记得第二个for循环 “j<n-1-i"为"j<n-i”void bubble_sort(){ for(int i=0;i<n;i++) for(int j=0;j<n-1-i;j++) if(a[j]>a[j+1]) swap(a[j],a[j+1]);}选择排序,这里是从下标0开始的void select_sort(){ for (int i =

2021-12-09 19:58:27 732

原创 PAT-A 1039 Course List for Student (25 分)

浙江大学有 40000 名学生,提供 2500 门课程。现在给定所有课程的报名学生姓名列表。给定你一个学生名单,请你查询名单中的学生的具体选课情况。输入格式第一行包含两个整数 N 和 K,分别表示需要查询的学生数量以及课程数量。接下来包含 K 个课程的具体报名信息。每个课程信息的第一行包含两个整数 i 和 Ni,分别表示该课程的编号(所有课程编号从 1 到 K)以及报课人数。第二行包含 Ni 个学生姓名,学生姓名由三个大写字母和一个数字组成。最后一行包含 N 个学生姓名,表示要查询的学生名单

2021-12-09 17:14:46 75

原创 PAT-A 1022 Digital Library (30 分)

数字图书馆包含数以百万计的书籍。每本书的书名,作者,摘要关键词,出版商和出版年限这五类关键信息都在数据库中有所记录。每本书被分配一个唯一的 7 位数字作为其 ID。当读者查询某一关键信息时,你应该找到所有与查询相关的书籍,并将它们按 ID 的升序排序输出。输入格式第一行包含整数 N,表示共有 N 本书。接下来包含这 N 本书的具体信息,每本书的相关信息占 6 行:第一行:书的 ID,一个 7 位数字。第二行:书名,一个长度不超过 80 的字符串。第三行:作者,一个长度不超过 80 的字符串

2021-12-09 16:57:57 76

原创 PAT-A 1075 PAT Judge (25 分)

PAT 的排名列表是根据状态列表产生的,状态列表中显示了所有提交记录的分数。现在,请你为 PAT 生成排名列表。输入格式第一行包含三个整数 N,K,M,分别表示总用户数量,题目数量,以及提交数量。用户编号是从 00001 到 N 的 5 位数字。问题编号从 1 到 K。第二行包含 K 个整数 p1,p2,…,pK,其中 pi 表示第 i 题的满分。接下来 M 行,每行包含一个提交信息,包括用户编号,题目编号,以及得分。当提交无法正确编译时,得分显示 −1,否则是一个 [0,该题满分] 范围内

2021-12-08 19:44:35 75

原创 PAT-A 1155 Heap Paths (30 分)

在计算机科学中,堆是一种的基于树的专用数据结构,它具有堆属性:如果 P 是 C 的父结点,则在大顶堆中 P 结点的权值大于或等于 C 结点的权值,在小顶堆中 P 结点的权值小于或等于 C 结点的权值。一种堆的常见实现是二叉堆,它是由完全二叉树来实现的。可以肯定的是,在大顶/小顶堆中,任何从根到叶子的路径都必须按非递增/非递减顺序排列。你的任务是检查给定完全二叉树中的每个路径,以判断它是否是堆。输入格式第一行包含整数 N,表示树中结点数量。第二行包含 N 个 不同 的整数,表示给定完全二叉树的层

2021-12-08 18:33:51 542

原创 PAT-A 1154 Vertex Coloring (25 分)

一个合适的顶点着色是指用各种颜色标记图中各个顶点,使得每条边的两个端点的颜色都不相同。如果一种合适的顶点着色方案使用了一共 k 种不同的颜色,则称其为合适的 k 着色(k-coloring)。现在,你需要判断给定的着色方案是否是合适的 k 着色方案。输入格式第一行包含两个整数 N 和 M,分别表示点和边的数量。接下来 M 行,每行包含两个整数 a,b,表示点 a 和点 b 之间存在一条边。所有点的编号从 0 到 N−1。再一行包含一个整数 K,表示你需要判断的着色方案。接下来 K 行,每行包

2021-12-08 18:08:35 204

原创 PAT-A 1142 Maximal Clique (25 分)

在一个无向图中,如果一个顶点子集满足子集内的任意两个不同顶点之间都是相连的,那么这个顶点子集就被称为一个团。如果一个团不能通过加入某个新的顶点来扩展成一个更大的团,那么该团就被称为最大团。现在,你需要判断给定顶点子集能否构成一个最大团。输入格式第一行包含两个整数 Nv 和 Ne,分别表示无向图中点和边的数量。接下来 Ne 行,每行包含两个整数 a,b,表示点 a 和点 b 之间存在一条边。所有点的编号从 1 到 Nv。再一行,包含整数 M,表示询问次数。接下来 M 行,每行描述一个询问顶点子

2021-12-06 19:26:26 492

原创 PAT-A 1145 Hashing - Average Search Time (25 分)

这个问题的任务很简单:首先将一个由若干个不同正整数构成的整数序列插入到一个哈希表中,然后尝试从表中查找另一个整数键值序列,并输出平均查找时间(查找时间指查找某个值是否在表中所进行的比较操作的次数)。哈希函数定义为 H(key)=key%TSize,其中 TSize 是哈希表的最大大小。利用只具有正增量的二次探测法来解决冲突。注意,哈希表的大小最好是素数,如果用户给出的最大大小不是素数,则必须将表大小重新定义为大于用户给出的大小的最小素数。输入格式第一行包含三个正整数 MSize,N,M,分别表示

2021-12-06 18:47:49 59

原创 PAT-A 1078 Hashing (25 分)

将一个由若干个不同正整数构成的整数序列插入到一个哈希表中,然后输出输入数字的位置。哈希函数定义为 H(key)=key%TSize,其中 TSize 是哈希表的最大大小。利用只具有正增量的二次探测法来解决冲突。注意,哈希表的大小最好是素数,如果用户给出的最大大小不是素数,则必须将表大小重新定义为大于用户给出的大小的最小素数。输入格式第一行包含两个整数 MSize 和 N,分别表示用户定义的表的大小以及输入数字的数量。第二行包含 N 个不同的正整数,数字之间用空格隔开。输出格式在一行中,输出每

2021-12-06 17:38:49 57

原创 LCA应用——树结构求两点最短距离(倍增法和tarjan)

给出 n 个点的一棵树,多次询问两点之间的最短距离。注意:边是无向的。所有节点的编号是 1,2,…,n 。输入格式第一行为两个整数 n 和 m 。 n 表示点数, m 表示询问次数;下来 n−1 行,每行三个整数 x,y,k ,表示点 x 和点 y 之间存在一条边长度为 k ;再接下来 m 行,每行两个整数 x,y ,表示询问点 x 到点 y 的最短距离。树中结点编号从 1 到 n 。输出格式共 m 行,对于每次询问,输出一行询问结

2021-12-06 16:19:20 1654

原创 最近公共祖先 LCA——树上倍增

给定一棵包含 n 个节点的有根无向树,节点编号互不相同,但不一定是 1∼n 。有 m 个询问,每个询问给出了一对节点的编号 x 和 y ,询问 x 与 y 的祖孙关系。输入格式输入第一行包括一个整数 表示节点个数;接下来 n 行每行一对整数 a 和 b ,表示 a 和 b 之间有一条无向边。如果 b 是 −1 ,那么 a 就是树的根;第 n+2 行是一个整数 m 表示询问个数;接下来 m 行,每行两个不同的正整数 x 和 y

2021-12-05 17:53:24 722

原创 PAT-A 1151 LCA in a Binary Tree (30 分)

树中两个结点 U 和 V 的最低公共祖先(LCA)是指同时具有 U 和 V 作为后代的最深结点。给定二叉树中的任何两个结点,请你找到它们的 LCA。输入格式第一行包含两个整数 M 和 N,分别表示询问结点对数以及二叉树中的结点数量。接下来两行,每行包含 N 个不同的整数,分别表示二叉树的中序和前序遍历。保证二叉树可由给定遍历序列唯一确定。接下来 M 行,每行包含两个整数 U 和 V,表示一组询问。所有结点权值均在 int 范围内。输出格式对于每对给定的 U 和 V,输出一行结果。如果 U

2021-12-05 14:33:49 850

原创 PAT-A 1143 Lowest Common Ancestor (30 分)

树中两个结点 U 和 V 的最低公共祖先(LCA)是指同时具有 U 和 V 作为后代的最深结点。二叉搜索树 (BST) 递归定义为具有以下属性的二叉树:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值若它的右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值它的左、右子树也分别为二叉搜索树现在给定 BST 中的任意两个结点,请你找出它们的最低公共祖先。输入格式第一行包含两个整数 M 和 N,分别表示询问结点对数以及二叉搜索树中的结点数量。第二行包含 N 个不同整数,表示该

2021-12-04 21:21:03 301

原创 欧拉图与汉密尔顿图

欧拉路径(每条边只能走一次)一、无向图1 存在欧拉路径的充要条件 : 度数为奇数的点只能有0或2个2 存在欧拉回路的充要条件 : 度数为奇数的点只能有0个二、有向图1 存在欧拉路径的充要条件 : 要么所有点的出度均=入度;要么除了两个点之外,其余所有点的出度=入度 剩余的两个点:一个满足出度-入度==1(起点) 一个满足入度-出度=1(终点)2 存在欧拉回路的充要条件 : 所有点的出度均等于入度。例题:在图论中,欧拉路径是图中的一条路径,该路径满足恰好访问每个边一次。而欧拉回路是一条.

2021-12-04 19:44:47 4878

原创 几种最短路

**Floyd求最短路 O(N³)**给定一个 n 个点 m 条边的有向图,图中可能存在重边和自环,边权可能为负数。再给定 k 个询问,每个询问包含两个整数 x 和 y,表示查询从点 x 到点 y 的最短距离,如果路径不存在,则输出 impossible。数据保证图中不存在负权回路。输入格式第一行包含三个整数 n,m,k。接下来 m 行,每行包含三个整数 x,y,z,表示存在一条从点 x 到点 y 的有向边,边长为 z。接下来 k ...

2021-12-04 18:33:49 62

原创 PAT-A 1135 Is It A Red-Black Tree (30 分)

数据结构中有一类平衡的二叉搜索树,称为红黑树。它具有以下 5 个属性:节点是红色或黑色。根节点是黑色。所有叶子都是黑色。(叶子是 NULL节点)每个红色节点的两个子节点都是黑色。从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。例如,下列三张图中,左图中的二叉树是红黑树,其余两图中的二叉树不是红黑树。现在,对于每个给定的二叉搜索树,请你判断它是否是合法的红黑树。注意给定的前序遍历序列可能不合法,即无法构建出合法二叉搜索树。输入格式第一行包含整数 K,表示共有 K 组测试

2021-12-03 14:15:42 104

原创 PAT-A 1064 Complete Binary Search Tree (30 分)

二叉搜索树 (BST) 递归定义为具有以下属性的二叉树:若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值若它的右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值它的左、右子树也分别为二叉搜索树完全二叉树 (CBT) 定义为除最深层外的其他层的结点数都达到最大个数,最深层的所有结点都连续集中在最左边的二叉树。现在,给定 N 个不同非负整数,表示 N 个结点的权值,用这 N 个结点可以构成唯一的完全二叉搜索树。请你输出该完全二叉搜索树的层序遍历。输入格式第一行包含整数 N,

2021-12-03 12:52:00 342

原创 PAT-A 1127 ZigZagging on a Tree (30 分)

假设一个二叉树上各结点的权值互不相同。我们就可以通过其后序遍历和中序遍历来确定唯一二叉树。请你输出该二叉树的 Z 字形遍历序列----也就是说,从根结点开始,逐层遍历,第一层从右到左遍历,第二层从左到右遍历,第三层从右到左遍历,以此类推。例如,下图所示二叉树,其 Z 字形遍历序列应该为:1 11 5 8 17 12 20 15。输入格式第一行包含整数 N,表示二叉树结点数量。第二行包含 N 个整数,表示二叉树的中序遍历序列。第三行包含 N 个整数,表示二叉树的后序遍历序列。输出格式输出二

2021-12-03 12:28:01 187

原创 PAT-A 1115 Counting Nodes in a BST (30 分)

二叉搜索树 (BST) 递归定义为具有以下属性的二叉树:若它的左子树不空,则左子树上所有结点的值均小于或等于它的根结点的值若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值它的左、右子树也分别为二叉搜索树将一系列数字按顺序插入到一个空的二叉搜索树中,然后,请你计算结果树的最低两层的结点个数。输入格式第一行包含整数 N,表示插入数字序列包含的数字个数。第二行包含 N 个整数,表示插入数字序列。输出格式以如下格式,在一行中,输出结果树的最后两层的结点数:n1 + n2 = nn1

2021-12-03 11:50:42 199

原创 PAT-A 1123 Is It a Complete AVL Tree (30 分)

AVL树是一种自平衡二叉搜索树。在AVL树中,任何节点的两个子树的高度最多相差 1 个。如果某个时间,某节点的两个子树之间的高度差超过 1,则将通过树旋转进行重新平衡以恢复此属性。图 1−4 说明了旋转规则。现在,给定插入序列,请你输出得到的AVL树的层序遍历,并判断它是否是完全二叉树。输入格式第一行包含整数 N,表示插入序列中元素个数。第二行包含 N 个不同的整数表示插入序列。输出格式第一行输出得到的AVL树的层序遍历序列。第二行,如果该AVL树是完全二叉树,则输出 YES,否

2021-12-03 11:29:35 54

原创 PAT-A 1138 Postorder Traversal (25 分)

假设二叉树上各结点的权值互不相同且都为正整数。给定二叉树的前序遍历和中序遍历,请你输出二叉树的后序遍历的第一个数字。输入格式第一行包含整数 N,表示二叉树结点总数。第二行给出二叉树的前序遍历序列。第三行给出二叉树的中序遍历序列。输出格式输出二叉树的后序遍历的第一个数字。数据范围1≤N≤50000输入样例:71 2 3 4 5 6 72 3 1 5 4 7 6输出样例:3数据量略大,用了unordered_map来去减少pre与inorder的匹配时间。#include

2021-12-03 11:03:13 45

原创 PAT-A 1110 Complete Binary Tree (25 分)

给定一个树,请你判断它是否是完全二叉树。输入格式第一行包含整数 N,表示树的结点个数。树的结点编号为 0∼N−1。接下来 N 行,每行对应一个结点,并给出该结点的左右子结点的编号,如果某个子结点不存在,则用 - 代替。输出格式如果是完全二叉树,则输出 YES 以及最后一个结点的编号。如果不是,则输出 NO 以及根结点的编号。数据范围1≤N≤20输入样例1:97 8_ __ __ _0 12 34 5_ __ _输出样例1:YES 8输入样例2:8_ _4

2021-12-02 15:40:08 342

原创 PAT-A 1102 Invert a Binary Tree (25 分)

以下是来自 Max Howell @twitter 的内容:谷歌:我们的百分之九十的工程师都使用你编写的软件,但是你连在白板上反转二叉树都做不到,还是滚吧。现在,请你证明你会反转二叉树。输入格式第一行包含一个整数 N,表示树的结点数量。所有结点编号从 0 到 N−1。接下来 N 行,每行对应一个 0∼N−1 的结点,给出该结点的左右子结点的编号,如果该结点的某个子结点不存在,则用 − 表示。输出格式输出反转后二叉树的层序遍历序列和中序遍历序列,每个序列占一行。相邻数字之间用空格隔开,末尾不

2021-12-02 14:54:07 48

原创 PAT-A 1086 Tree Traversals Again (25 分)

通过使用栈可以以非递归方式实现二叉树的中序遍历。例如,假设遍历一个如下图所示的 6 节点的二叉树(节点编号从 1 到 6)。则堆栈操作为:push(1); push(2); push(3); pop(); pop(); push(4); pop(); pop(); push(5); push(6); pop(); pop()。我们可以从此操作序列中生成唯一的二叉树。你的任务是给出这棵树的后序遍历。输入格式第一行包含整数 N,表示树中节点个数。树中节点编号从 1 到 N。接下来 2N 行,每

2021-12-02 14:26:51 274

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除