- 博客(49)
- 收藏
- 关注
原创 「数据结构」三步搞定表达式中缀转后缀 手算法 通俗易懂 C语言
表达式中缀转后缀举个例子,一个式子:( 5 + 20 + 1 * 3 ) / 14如何把该式子转换成后缀表达式呢?其实就是分三步:按运算符优先级对所有运算符和它的运算数加括号 (原本有括号的不用加)。把运算符移到对应的括号后。去掉括号。对应的具体实现为:( ( ( 5 + 20 ) + ( 1 * 3 ) ) / 14 )( ( ( 520 ) + ( 13 ) * ) + 14) /520 + 13 * + 14 /...
2021-09-17 17:58:26
304
原创 「数据结构」后缀表达式的计算 栈的应用 C语言
算法流程对于一个后缀表达式,首先从左往右扫描每一个字符:① 如果扫描到数字,则将数字入栈,继续扫描下一个字符。② 如果扫描到运算符,则连续出栈两次,取出两个操作数进行运算,最后将运算的结果重新入栈。如此往复,直到扫描到终止运算符 “\0” 停止,此时栈底元素值即为表达式的值。代码逻辑(C语言)详细解析请看注释#include <iostream>using namespace std;#define maxSize 50int op (int a, char Op, in
2021-09-14 20:11:46
328
原创 「考研408」02数据的运算和表示 计算机组成原理 408复习总结(持续更新)
本章知识框架图知识点进制转换:整数部分用除基取余法(倒叙取余),小数部分用乘基取余法(正序取余),最后将整数和小数部分拼接起来。BCD码有8421码、余3码和2421码。7位二进制编码的ASCII码,0~31为控制字符,32为空格SP,127为DEL码,48~57为数字,32~126为95个可印刷字符,共128个字符。海明码(数据m位,校验码p位):若想指出任意一位错误,校验码p必须满足:2^p - 1 ≥ m + p。校验码放在2^n(n=0、1、2…)位置上,数据
2021-08-31 07:53:39
785
3
转载 原码、反码、补码的产生、应用以及优缺点「通俗易懂」
原码、反码、补码的产生、应用以及优缺点有哪些?我尝试硬生生的把它们串起来哈数字在自然界中抽象出来的时候,一棵树,两只猪,是没有正数和负数的概念的计算机保存最原始的数字,也是没有正和负的数字,叫没符号数字如果我们在内存分配4位(bit)去存放无符号数字,是下面这样子的后来在生活中为了表示“欠别人钱”这个概念,就从无符号数中,划分出了“正数”和“负数”正如上帝一挥手,从混沌中划分了“白天”与“黑夜”为了表示正与负,人们发明了"原码",把生活应该有的正负概念,原原本本的表示出来把左边第一位腾.
2021-08-25 09:50:50
649
原创 「考研408」01计算机系统概述 计算机组成原理 408复习总结(持续更新)
计算机硬件发展历程:电子管时代(一代)->晶体管时代(二代)->中小规模集成电路时代(三代)->超大规模集成电路时代(四代)语言:机器语言(一代)->汇编语言(二代)->高级语言(三代以后)存储介质:延迟线或磁鼓(一代)->磁芯存储(二代)->半导体存储器(三代以后)计算机软件发展略……计算机的分类与发展方向早期冯诺伊曼机器以运算器为中心,输入/输出设备通过运算器与存储器传输数据;现代计算机以存储器为中心,使I/O操作尽可能绕过CPU。常见
2021-08-24 10:54:30
516
1
原创 1115 Counting Nodes in a BST (30 分) 全网最细 题目详解 翻译 完整代码 PAT甲级真题解析
1115 Counting Nodes in a BST(30分)预备知识:题目翻译:题目解析:逻辑梳理:参考代码:预备知识:题目翻译:二叉搜索树(BST)本质是一棵二叉树,它具有以下特性:一个节点的左子树的结点值均只包含键值小于或等于该节点键值的节点。一个节点的右子树只包含键大于该节点键的节点。左子树和右子树也必须是二叉搜索树。在一棵空的二叉搜索树中插入一系列结点。然后,你需要计算树中最后两层的节点个数。输入格式:每个输入文件包含一个测试用例。对于每个用例,第一行给出一个
2021-06-19 11:38:34
181
原创 1106 Lowest Price in Supply Chain (25 分) 全网最细 题目详解 翻译 完整代码 PAT甲级真题解析
此题与1090 Highest Price in Supply Chain (25 分)极为相似,详细解析请戳链接。1106 Lowest Price in Supply Chain(20分)预备知识:题目翻译:题目解析:逻辑梳理:参考代码:预备知识:二叉树的深度优先搜索题目翻译:供应链是一个由零售商、经销商和供应商构成的网络,负责将产品从供应商转移到客户手中。从一个根供应商开始,供应链上的每个人都以P的价格从供应商那里购买产品,然后以比P高r%的价格销售或分销。假设供应链中的每个成员除了
2021-06-16 08:03:52
227
原创 1102 Invert a Binary Tree (25 分) 全网最细 题目详解 翻译 完整代码 PAT甲级真题解析
1077 Kuchiguse(20分)预备知识:题目翻译:题目解析:逻辑梳理:参考代码:1108 Finding Average (20 分) 全网最细 题目详解 翻译 完整代码 PAT甲级真题解析预备知识:stoi() 函数的用法题目翻译:*写一个算法反转二叉树输入格式:每个输入文件包含一个测试用例。对于每个用例,第一行给出一个正整数N(≤10),代表树中节点的总数(节点的编号从0到N−1)。接下来N行,每一行对应于从0到N−1的一个节点,并给出该节点的左、右子节点的索引。如果子节点
2021-06-12 17:39:11
319
原创 1090 Highest Price in Supply Chain (25 分) 全网最细 题目详解 翻译 完整代码 PAT甲级真题解析
1090 Highest Price in Supply Chain(25分)预备知识:题目翻译:输入格式:输出格式:题目解析:逻辑梳理:参考代码:预备知识:二叉树的深度优先搜索题目翻译:供应链是一个由零售商、经销商和供应商构成的网络,负责将产品从供应商转移到客户手中。从一个根供应商开始,供应链上的每个人都以P的价格从供应商那里购买产品,然后以比P高r%的价格销售或分销。假设供应链中的每个成员除了根供应商外只有一个供应商(每个结点只有一个父结点),并且没有供应环(树中没有环路)。现在给你一个
2021-06-10 20:37:38
358
1
原创 1086 Tree Traversals Again (25 分) 全网最细 题目详解 翻译 完整代码 PAT甲级真题解析
1086 Tree Traversals Again(20分)预备知识:题目翻译:输入格式:输出格式:题目解析:逻辑梳理:参考代码:PAT甲级 1108 Finding Average (20 分) 全网最细 题目详解 翻译 完整代码 PAT真题解析预备知识:题目翻译:一个中序遍历的二叉树可以通过堆栈以非递归的方式实现。例如:假设遍历一棵拥有6个结点的二叉树(编号从1到6),对栈的操作为:1入栈,2入栈,3入栈,元素出栈,元素出栈,4入栈,元素出栈,元素出栈,5入栈,5入栈,元素出栈,元素出栈
2021-06-09 08:44:10
293
3
原创 1053 Path of Equal Weight (30 分) 全网最细 题目详解 翻译 完整代码 PAT甲级真题解析
1053 Path of Equal Weight(30分)预备知识:题目翻译:输入格式:输出格式:题目解析:逻辑梳理:参考代码:PAT甲级 1108 Finding Average (20 分) 全网最细 题目详解 翻译 完整代码 PAT真题解析预备知识:题目翻译:难点单词:输入格式:输出格式:输入样例(一):输出样例(一):输入样例(二):输出样例(二):题目解析:字符串处理题,简单题。逻辑梳理:参考代码:全部通过PAT甲级 1108 F
2021-06-05 20:07:12
174
原创 线索二叉树的建立和遍历(附源码)(前/中/后序)「数据结构算法精讲」
前言:二叉树的非递归遍历算法(点此学习算法)避免了系统栈的调用,提高了执行效率。而线索二叉树可以将用户栈也省去,把二叉树的遍历过程线性化,进一步提高效率(但代价就是会使用较多的的存储空间)。完整代码见文章末尾普通的二叉链表,n个结点的二叉树会有n+1个空链域,为了把这些空链域有效的利用起来,线索二叉树出现了。线索二叉树的结点构造如下:lchildltagdatartagrchild左孩子左标识域数据域右孩子右标识域typedef struct TBTNode
2021-06-02 16:13:20
3052
1
原创 二叉树-DFS非递归算法(前/中/后序)「数据结构算法精讲」
为了写测试代码,首先需要创建一颗二叉树。节点定义:typedef struct BTNode // 定义二叉树的节点{ char data; // 节点数据类型 struct BTNode *lchild; // 左孩子 struct BTNode *rchild; // 右孩子}BTNode;前序递归创建二叉树:BTNode *createBinaryTree() // 前序递归创建二叉树{ BTNode *p; char ch; cin &
2021-05-28 17:57:12
1751
原创 PAT甲级答案一览表(持续更新)_Pooooooocky
为方便汇总学习,本篇博文记录PAT甲级题目的全部答案链接:每道题目都会有「中文翻译」、「题目解析」和详细的「逻辑分析」并附上「参考代码」。若想按照「PAT知识点分类」进行学习,请看另一篇博文(点此跳转)。10011002100310041005100610071008100910101021102210231024102510261027102810291030103110321033103410351036
2021-05-25 07:31:22
1528
原创 1152 Google Recruitment (20 分) 全网最细 题目详解 翻译 完整代码 PAT甲级真题解析
1152 Google Recruitment(20分)预备知识:题目翻译:输入格式:输出格式:题目解析:逻辑梳理:参考代码:预备知识:string 头文件函数 substr() 截取字符串子串;题目翻译:2004年7月,谷歌在硅谷101号公路旁的巨型广告牌上发布招聘信息(如图所示)。内容非常简单,URL由自然常数 e 的连续数字中的前10位素数组成。找到这个素数的人可以通过访问这个网站进入谷歌招聘流程。众所周知,自然常数 e 是一个超越数。 前几个数字是:2.7182818284590
2021-05-24 21:40:48
570
原创 1140 Look-and-say Sequence (20 分) 全网最细 题目详解 翻译 完整代码 PAT甲级真题解析
1140 Look-and-say Sequence(20分)预备知识:题目翻译:输入格式:输出格式:题目解析:逻辑梳理:参考代码:预备知识:题目翻译:Look-and-say 是一个整数序列:D, D1, D111, D113, D11231, D112213111, …其中D是属于 [0, 9] 的一个整数。第 (n+1) 个数是对第n个数的描述。例如:第二个数字 (D1) 的意思是第一个数字中有一个D;第三个数字 (D111) 的意思是第二个数字中有一个D (D1) 和一个1
2021-05-22 10:15:12
330
原创 1108 Finding Average (20 分) 全网最细 题目详解 翻译 完整代码 PAT甲级真题解析
1108 Finding Average(20分)预备知识:题目翻译:输入格式:输出格式:题目解析:逻辑梳理:参考代码:预备知识:题目翻译:难点单词:输入格式:输出格式:输入样例(一):75 -3.2 aaa 9999 2.3.4 7.123 2.35输出样例(一):ERROR: aaa is not a legal numberERROR: 9999 is not a legal numberERROR: 2.3.4 is not a legal number
2021-05-21 11:48:53
372
原创 1082 Read Number in Chinese (25 分) 全网最细 题目详解 翻译 完整代码 PAT甲级真题解析
1082 Read Number in Chinese(20分)预备知识:题目翻译:输入格式:输出格式:题目解析:逻辑梳理:参考代码:预备知识:题目翻译:难点单词:输入格式:输出格式:输入样例(一):输出样例(一):输入样例(二):输出样例(二):题目解析:字符串处理题,简单题。逻辑梳理:参考代码:全部通过...
2021-05-20 21:17:24
811
原创 1077 Kuchiguse (20 分) 全网最细 题目详解 翻译 完整代码 PAT甲级真题解析
目录预备知识:题目翻译:输入格式:输出格式:题目解析:逻辑梳理:参考代码:预备知识:?题目翻译:科学记数法是科学家轻松处理非常大或者非常小的数字的方法,它的格式于如下正则表达式相匹配 [±][1-9].[0-9]+E[±][0-9]+ ,也就是说整数部分至少有一个数字,小数部分至少有一个数字,并且数字和该数字的指数符号必须要存在(即使是正数)。现在给定一个用科学记数法表示的实数a,需要你用传统计数方法打印该数,同时保留所有有效数字。难点单词:Scientific notation 科学记
2021-05-19 19:49:19
471
3
原创 1073 Scientific Notation (20 分) 全网最细 题目详解 翻译 完整代码 PAT甲级真题解析
1073 Scientific Notation (20 分)中文翻译:(原题目为英文)科学记数法是科学家轻松处理非常大或者非常小的数字的方法,它的格式于如下正则表达式相匹配 [±][1-9].[0-9]+E[±][0-9]+ ,也就是说整数部分至少有一个数字,小数部分至少有一个数字,并且数字和该数字的指数符号必须要存在(即使是正数)。现在给定一个用科学记数法表示的实数a,需要你用传统计数方法打印该数,同时保留所有有效数字。难点单词:Scientific notation 科学记数法fra
2021-05-12 14:59:40
272
原创 1061 Dating (20 分) 全网最细 题目详解 翻译 完整代码 PAT甲级真题解析
1061 Dating (20 分)本道题需要了解的预备知识:中文翻译:(原题目为英文)给定四个不规则字符串(如下),按如下规则破解其中的信息:前两字符串中第1对相同的大写英文字母(区分大小写)是第4个字母D,代表星期四;第2对相同的字符是E,E是第5个英文字母,代表一天里的第14个小时(一天的0点到23点由数字0到9、以及大写字母A到N表示);最后两字符串第1对相同的英文字母s出现在第4个位置(从0开始计数)上,代表第4分钟。破解前:3485djDkxh4hhGE 2984akDf
2021-05-11 14:55:03
261
原创 C/C++字符(char/string)与整型(int)的相互转换——PAT常用知识点(三)
1. 字符型(char)转整型(int)char c = '6'; //字符型 c = '6'int num = c - '0'; //转换结果:num = 62. 整型(int)转字符型(char)int num = 5; //整型 num = 5char c = num + '0'; //转换结果:字符型 c = '5'3. 字符串型(string)转整型(int)#include <cstring> //需要引入cstring头文件string = "123456"
2021-04-09 10:50:49
29676
3
原创 C/C++cctype头文件使用方法(同ctype.h)——PAT常用知识点(二)
PS:#include < cctype > 等同于 #include < ctype.h >头文件简介<ctype.h> 是一个与字符处理有关的头文件,它包含了一系列用于检测和转换单个字符的函数。<ctype.h> 包含了两种类型的函数:一种是字符分类函数,这些函数用来检测由参数传入的字符是否属于某个特定的分类。一种是字符转换函数,这些函数用来对大写字母和小写字母进行转换。常用函数(一):字符检测函数功能[isalnum
2021-04-09 10:16:58
561
原创 PAT甲级答案一览表(按题目分类 | 持续更新)_Pooooooocky
2021年4月3日开贴,持续更新中……PAT甲级题目分类水题:1136113911431148… …… …… …… …… …… …字符串处理:1001100510351061107310771082110811401152模拟:10021009101710261042104610651105… …… …查找元素:
2021-04-03 20:10:36
1112
原创 1035 Password (20 分) 全网最细 题目详解 翻译 完整代码 PAT甲级真题解析
1035 Password (20 分)本道题需要了解的预备知识:中文翻译:(原题目为英文)为了准备PAT,裁判有时候需要为用户生成随机密码。但是有些字符却难以区分,例如:‘1’(数字1)和’l’(字母L小写),‘0’(数字0)和’O’(字母o大写)。其中一种解决方案是用’@‘代替’1’(数字1),用’%‘代替’0’(数字0),用’L’(字母L大写)代替’l’(字母L小写),用’o’代替’O’(字母o大写)。现在你的任务是编写一个程序来检查自动生成的密码,并帮助裁判修改这些某些难以区分的密码。输
2021-04-03 14:26:59
564
原创 1005 Spell It Right (20 分) 全网最细 题目详解 翻译 完整代码 PAT甲级真题解析
1005 Spell It Right (20 分)本道题需要了解的预备知识:“数字字符”转为“整型数字”的方法:(ASCII码的运算)char a;int b = a - '0'; //字符 - ‘0’中文翻译:(原题目为英文)给定一个非负数N,你的任务是计算整数N的所有位数的和,然后用英文输出答案(每位数字的和)。输入格式:每个输入样例包含一个测试用例。每一种情况占一行,其中 N≤10^100输出格式:对于每个测试用例,在一行中输出用英文单词表示的数字和。两个连续的单词之
2021-04-03 00:17:36
680
原创 1001 A+B Format (20 分) 全网最细 题目详解 翻译 完整代码 PAT甲级真题解析
1001 A+B Format (20 分)本道题需要了解的预备知识:string头文件使用方法中文翻译:(原题目为英文)计算a+b并以标准格式输出,即:每三位加一个 “,” 的格式输出(若少于四个数字则直接输出)。输入格式:每个输入文件包含一个测试用例。每个用例包含一对整数a和b,其中(-10^6 ≤ a,b ≤ 10^6),数字之间用空格分割。输出格式:对于每个测试用例,你需要按照格式要求在一行中输出a+b的计算结果。输入样例:-1000000 9输出样例:-99
2021-03-31 11:42:31
4060
9
原创 C/C++string头文件使用方法——PAT常用知识点(一)
#include <string>using namespace std;string内容访问一般来说,可以直接像字符串数组那样去访问string。如果要读入和输出整个字符串,则只能用cin和cout。或者用c_str()将string类型转换为字符串数组进行输出。printf("%s\n", str.c_str());//将string型使用c_str()变为字符串数组通过迭代器访问,有些函数比如insert()与erase()则要求以迭代器为参数。string
2021-03-30 21:34:12
676
原创 PAT常用易错算法(2021持续更新)
素数判断bool isprime(int n) { if(n <= 1) return false; int sqr = int(sqrt(n * 1.0)); for(int i = 2; i <= sqr; i++) { if(n % i == 0) return false; } return true;十进制转d进制int n, d;//n为十进制数,d为转换的目标进制int len = ..
2021-02-25 17:41:40
198
原创 AVL平衡二叉树——常用标准函数代码
AVL平衡二叉树——常用标准函数代码AVL树仍然是一颗二叉查找树,只是在其基础上增加了**“平衡”**的要求。由于需要对每个节点都得到平衡因子,因此需要在树的结构中加入height变量,用来记录以当前节点为根节点的子树的高度。结构体如下:struct node { int v, height; node *lchild, *rchild;};新建结点:node* newNode(int v) { node* Node = new node; Node->
2021-02-25 16:04:11
352
原创 递归详解(一)全排列问题 数据结构-算法解析-浙大-PAT
递归——全排列问题(Full Permutation) 废话少说,首先看定义:全排列(Full Permutation),一般把1~n这n个整数按某个顺序摆放的结果称为这n个整数的一个排列 ,而全排列指这n个整数能形成的所有排列。例如对1、2、3这三个整数来说, (1, 2, 3)、(1, 3, 2)、(2, 1, 3)、(2, 3, 1)、(3, 1, 2)、(3, 2, 1)就是1~3的全排列。 现在需要实现按字典序从小到大的顺序输出 1~n 的全排列,其中 (a1, a2, …, a
2021-01-01 17:21:59
2661
1
原创 排序与sort函数的应用 PAT A1025 Ranking 全网最详解析 附完整代码 PAT真题解析
本篇文章将会用一道PAT甲级(A1025)题目,完整讲述sort函数的应用首先,上题目:PAT A1025【 PAT Ranking】注释很重要一定要认真看注释很重要一定要认真看注释很重要一定要认真看题目要求: Programming Ability Test (PAT) is organized by the College of Computer Science and Technology of Zhejiang University. Each test is supposed t
2020-12-30 22:11:38
292
原创 C/C++易错知识点——算法笔记-读书笔记-第二章-零碎知识点
如果对你有帮助的话,欢迎点赞收藏~ 本系列持续更新中零碎知识点:尽量不要使用float,碰到浮点型的数据都应该用double来存储。在C语言中,字符常量(必须是单个字符)必须用单引号标注。字符串常量可以作为初值赋给字符数组,并使用%s的格式输出。不能把字符串常量赋值给字符变量。[ char c = “abcd” (❌) ]整数除以整数在计算机中视为整除操作,不会自动变为浮点数。尽量不要使用宏定义来做除了定义常量以外的事情,除非给能加括号的地方都加上括号。%md(补
2020-12-29 18:04:08
212
原创 MongoDB快速入门——建立模型与设置关联查询(Node.js)
本文阅读前提:MongoDB数据库已安装、Node环境已配置、初始化项目并安装 ‘mongoose’ 插件。预计花费时间:20Min;本篇文章以“文章”和“分类”为例子,来讲解MongoDB的基础用法。跟随本文代码讲解,你将学会MongoDB的模型建立和关联方法/技巧,此篇教程学习自 -B站-全站之巅-乔尼老师- 再次感谢!真的学到很多东西。PS1:建议MongoDB中对数据库的操作都采用await方法。PS2:插入数据的代码只需要执行一次,否则会出现很多重复数据。0. 连接Mo
2020-12-24 17:27:27
1014
2
原创 PAT乙级真题解析:数字分类(1012)题目+解析+源码(C++版)
题目描述给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:A1 = 能被5整除的数字中所有偶数的和;A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4…;A3 = 被5除后余2的数字的个数;A4 = 被5除后余3的数字的平均数,精确到小数点后1位;A5 = 被5除后余4的数字中最大数字。输入描述:每个输入包含1个测试用例。每个测试用例先给出一个不超过1000的正整数N,随后给出N个不超过1000的待分类的正整数。数字间以空格分隔。输出描述
2020-10-30 21:53:57
317
原创 VueCli3引入百度地图Api详细步骤+宽高自动页面自适应(踩坑+源代码)
首先去百度地图官网申请ak密钥,这个很简单,百度也有很多教程,就不细说了。传送门:申请ak密钥开发文档:百度地图API开发文档打开项目文件,在public文件夹下的index.html页面中引入百度地图API这里的密钥,要替换为你刚才申请的ak密钥 <script type="text/javascript" src="http://api.map.baidu.com/getscript?v=3.0&ak=密钥"></script>3.在src-&...
2020-09-17 12:48:12
3014
2
原创 Vuetify安装踩坑,ERROR Error: You cannot call “get“ on a collection with no paths…
项目场景:最近开发一个新的app项目,打算用Vue3 + Vuetify,在安装Vuetify的时候就遇到了错误。Vuetify虽然是一个移动端很棒的框架,但是国内的教材、中文版的文档实在是太少了。去Googol查了半天才解决问题,解决方法也巨简单问题描述:输入vue add vuetify后报错:Error: You cannot call "get" on a collection with no paths. Instead, check the "length" property firs
2020-09-09 11:46:35
2934
4
原创 PAT乙级真题解析:个位数统计(1021)题目+解析+源码(C语言版)
> 给定一个k位整数N = dk-1*10k-1 + ... + d1*101 + d0 (0<=di<=9, i=0,...,k-1,> dk-1>0),请编写程序统计每种不同的个位数字出现的次数。例如:给定N = 100311,则有2个0,3个1,和1个3。题目解析:用一句话总结就是 **“ 统计一个整数中每个数字出现的次数(难点),并按要求的格式输出”**我们容易得出: 1. 需要遍历输入的那个整数 -> 采用for循环 2. 需要有一个结构专门存储数字出现的次数 -> 我们最容易想
2020-07-28 15:18:08
458
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人