
PTA刷题
胡澳治
好好学习,不断进步
展开
-
2020-12-23
破题,浪费时间,dist == INFINITY不行吗!,硬要==-1这个博客有解析下面是我的代码void ShortestDist( MGraph Graph, int dist[], int count[], Vertex S ){ for(int i = 0; i < Graph->Nv; i++){ dist[i] = INFINITY; count[i] = 0; } bool vis[MaxVertexNum] = {fa原创 2020-12-23 21:55:01 · 88 阅读 · 0 评论 -
PTA甲级1001 A+B Format (20分)简简单单
用头文件里的to_string()函数把数字和转换为string类型,从后往前每隔三个数插入一个逗号,同时处理一种特殊情况:负号后面不能插入‘,’,insert(int i, string str)把str插入到s串的下标i处,原来此处及后面的每一个字符向后移动。//#include <bits/stdc++.h>#include <iostream>#include <string>using namespace std;int main(){ in原创 2020-11-20 22:49:09 · 367 阅读 · 0 评论 -
7-9 二叉树的层次遍历 (25分)
编写程序,要求实现(1)按先序遍历序列建立二叉树的二叉链表;(2)按层次遍历二叉树。构成二叉链表的结点类代码如下:class BtNode{ char data; BtNode lchild,rchild;}按加入空树信息的先序遍历序列建立二叉树的二叉链表代码提供如下://先序遍历序列建立二叉链表public static BtNode createBiTree() throws IOException{ char c=(char) System.in.read(); .原创 2020-11-12 00:48:45 · 1070 阅读 · 0 评论 -
7-7 修理牧场 (25分)嗯嗯
农夫要修理牧场的一段栅栏,他测量了栅栏,发现需要N块木头,每块木头长度为整数Li 个长度单位,于是他购买了一条很长的、能锯成N块的木头,即该木头的长度是Li 的总和。但是农夫自己没有锯子,请人锯木的酬金跟这段木头的长度成正比。为简单起见,不妨就设酬金等于所锯木头的长度。例如,要将长度为20的木头锯成长度为8、7和5的三段,第一次锯木头花费20,将木头锯成12和8;第二次锯木头花费12,将长度为12的木头锯成7和5,总花费为32。如果第一次将木头锯成15和5,则第二次锯木头花费15,总花费为35(大原创 2020-12-04 11:02:06 · 1676 阅读 · 0 评论 -
7-6 还原二叉树 (25分)嗯嗯
给定一棵二叉树的先序遍历序列和中序遍历序列,要求计算该二叉树的高度。输入格式:输入首先给出正整数N(≤50),为树中结点总数。下面两行先后给出先序和中序遍历序列,均是长度为N的不包含重复英文字母(区别大小写)的字符串。输出格式:输出为一个整数,即该二叉树的高度。输入样例:9ABDFGHIECFDHGIBEAC输出样例:5思路注意不要把题目复杂化重建树就好了,之前说了怎么根据后续和前序遍历重建树的思想,所以下面代码一看就懂代码#include <bits/stdc++.h&g原创 2020-12-04 11:06:56 · 360 阅读 · 0 评论 -
Tree Traversals Again对的
An inorder binary tree traversal can be implemented in a non-recursiveway with a stack. For example, suppose that when a 6-node binary tree(with the keys numbered from 1 to 6) is traversed, the stackoperations are: push(1); push(2); push(3); pop(); pop.原创 2020-12-04 11:02:45 · 96 阅读 · 0 评论 -
PTA List Leaves (25分)
7-2 List Leaves (25分)Given a tree, you are supposed to list all the leaves in the order oftop down, and left to right.Input Specification:Each input file contains one test case. For each case, the first line gives a positive integer N (≤10) which is原创 2020-12-04 11:03:04 · 204 阅读 · 0 评论 -
PTA-树的同构嗯嗯
给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。例如图1给出的两棵树就是同构的,因为我们把其中一棵树的结点A、B、G的左右孩子互换后,就得到另外一棵树。而图2就不是同构的。图1图2现给定两棵树,请你判断它们是否是同构的。输入格式:输入给出2棵二叉树树的信息。对于每棵树,首先在一行中给出一个非负整数N(≤10),即该树的结点数(此时假设结点从0到N−1编号);随后N行,第i行对应编号第i个结点,给出该结点中存储的1个英文大写字母、其左孩.原创 2020-12-04 11:04:00 · 250 阅读 · 0 评论 -
根据二叉树的后序和中序遍历输出先序遍历
7-8 根据后序和中序遍历输出先序遍历 (20分)本题要求根据给定的一棵二叉树的后序遍历和中序遍历结果,输出该树的先序遍历结果。输入格式:第一行给出正整数N(≤30),是树中结点的个数。随后两行,每行给出N个整数,分别对应后序遍历和中序遍历结果,数字间以空格分隔。题目保证输入正确对应一棵二叉树。输出格式: 在一行中输出Preorder:以及该树的先序遍历结果。数字间有1个空格,行末不得有多余空格。输入样例: 7 2 3 1 5 7 6 4 1 2 3 4 5 6 7输出样例: Preo原创 2020-11-08 15:51:48 · 3541 阅读 · 0 评论 -
二叉树的基本操作(四道基础题)
6-1 Level-order Traversal (25分)题意编写一个例程以“层次顺序”列出二叉树的节点。列出根节点,然后列出深度为1的节点,然后是深度为2的节点,依此类推。你必须用线性时间来做这个。思路先判断数是否为空树,空树则无需打印,直接return;由于最大节点数是MaxTree,我们先开一个结构体指针数组tree[MaxTree],由于树现在已经非空,我们让tree[0]指向第一个节点,当head < taill时,说明树的节点还没被访问完,以此为循环条件,先打印此时的原创 2020-12-04 11:04:13 · 862 阅读 · 0 评论 -
怎么用C++链表处理一元多项式的乘法与加法运算
7-2 一元多项式的乘法与加法运算求一元多项式的和与积PTA数据结构与算法题目集【中文】第二道编程题**用单链表处理,代码量较多,我的注释尽量写的仔细,没有优化代码,注意去其糟粕~希望提出建议**#include <iostream>#include <vector>using namespace std;struct Node { int coefficient; int Index; struct Node* next; Node原创 2020-10-31 14:58:27 · 563 阅读 · 0 评论