自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 资源 (5)
  • 收藏
  • 关注

原创 树的遍历

#include<stdio.h>#include<vector>#include<queue>using namespace std;const int maxn = 100;struct node{ int data; vector<int> child;}Node[maxn]; void PreOrder(int root){ printf("%d", Node[root].data); for(int i = 0; .

2021-02-24 09:28:22 63

原创 二叉树的遍历——还原二叉树

#include<stdio.h>#include<queue>using namespace std;const int maxn = 50;struct node{ int data; node* lchild; node* rchild;};int post[maxn], in[maxn];int n;node* create(int postL, int postR, int inL, int inR){ if(postL > postR.

2021-02-23 10:26:59 107

原创 二叉树的遍历——BFS

void LayerOrder(node* root){ queue<node*> Q; root->layer = 1; Q.push(root); while(!Q.empty()) { node* now = Q.front(); Q.pop(); printf("%d ", now->data); if(now->lchild != NULL) { now->lchild->layer = now->layer .

2021-02-23 09:02:10 92

原创 二叉树的遍历——DFS

先序遍历void preorder(node* root){ if(root == NULL) return; printf("%d\n", root->data); preorder(root->lchild); preorder(root->rchild);}中序遍历void inorder(node* root){ if(root == NULL) return; inorder(root->lchild); printf("%d\n", root.

2021-02-23 08:50:48 461

原创 BFS——走迷宫的最小步数

#include<stdio.h>#include<string.h>#include<queue>using namespace std;const int maxn = 100;struct node{ int x, y; int step;}S, T, Node;int n, m; char maze[maxn][maxn]; // 迷宫信息 bool inq[maxn][maxn] = {false};i..

2021-02-22 10:02:50 237

原创 BFS——求矩阵中“块”的个数

#include<stdio.h>#include<queue>using namespace std;const int maxn = 100;struct node{ int x, y;}Node;int n, m; int matrix[maxn][maxn]; // 01矩阵 bool inq[maxn][maxn] = {false};int X[4] = {0, 0, 1, -1};int Y[4] = {1, -1.

2021-02-22 08:36:24 349

原创 DFS——选数问题

#include<stdio.h>#include<vector> using namespace std;const int maxn = 30;int n, k, x, maxSumSqu = -1, A[maxn];vector<int> temp;vector<int> ans;void DFS(int index, int nowK, int sum, int sumSqu){ if(nowK == k && s.

2021-02-21 10:35:58 175

原创 DFS——背包问题

#include<stdio.h>const int maxn = 30;int n, V, maxValue = 0;int w[maxn], c[maxn];void DFS(int index, int sumW, int sumC){ // 死胡同 if(index == n) return; // 岔路口 —— 不选 DFS(index + 1, sumW, sumC); // 岔路口 —— 选 if(sumW + w[index] <= V).

2021-02-21 09:38:29 134

原创 静态链表——sorting

#include<stdio.h>#include<algorithm>using namespace std;const int maxn = 100005;struct Node{ int address, data, next; bool flag;}node[maxn];bool cmp(Node a, Node b){ if(a.flag == false || b.flag == false) return a.flag > b.flag;.

2021-02-20 11:44:17 96

原创 静态链表——sharing

#include<stdio.h>const int maxn = 100010;struct NODE{ char data; int next; bool flag;}node[maxn]; int main(){ for(int i = 0; i < maxn; i++) { node[i].flag = false; } int s1, s2, n; scanf("%d%d%d", &s1, &s2, &n); int a.

2021-02-20 09:54:20 71

原创 栈与队列的应用——计算表达式的值

#include<iostream>#include<stdio.h>#include<string>#include<stack>#include<queue>#include<map>using namespace std;struct node{ double num; char op; bool flag;};string str;stack<node> s;queue<nod.

2021-02-19 12:05:07 175

转载 将中缀表达式转换为后缀表达式

我们把平时所用的标准四则运算表达式,即“9+(3-1)*3+10/2"叫做中缀表达式。因为所有的运算符号都在两数字的中间,现在我们的问题就是中缀到后缀的转化。 中缀表达式“9+(3-1)*3+10/2”转化为后缀表达式“9 3 1-3*+ 10 2/+” 规则:从左到右遍历中缀表达式的每个数字和符号,若是数字就输出,即成为后缀表达式的一部分;若是符号,则判断其与栈顶符号的优先级,是右括号或优先级低于找顶符号(乘除优先加减)则...

2021-02-19 09:48:34 764

转载 图解后缀表达式的计算过程

为了解释后缀表达式的好处,我们先来看看,计算机如何应用后缀表达式计算出最终的结果20的。 后缀表达式:9 3 1-3*+ 10 2/+ 规则:从左到右遍历表达式的每个数字和符号,遇到是数字就进栈,遇到是符号,就将处于栈顶两个数字出栈,进行运算,运算结果进栈,一直到最终获得结果。 下面是详细的步骤: 1. 初始化一个空栈。此桟用来对要运算的数字进出使用。 2. 后缀表达式中前三个都是数字,所以9、3、1进栈...

2021-02-19 09:18:50 2099

原创 algorithm 头文件下的常用函数

1. max()、min()、abs()2. swap()3. reverse(it, it2)4. next_permutation(a, a + 3)给出一个序列在全排列中的下一个序列。5. fill(a, a + 5, 233)6. sort(a, a + 3, cmp)7. lower_bound(first,last,val)用来寻找在数组或容器的 [ first, last ) 范围内第一个大于等于 val 的元素的位置。如果是数组,返回该位置的指针;如果是容器,返回该位置的迭代

2021-02-18 16:51:44 123

原创 STL——stack 常用函数

1. push()2. top()3. pop()4. empty()5. size()stack 用来模拟实现一些递归,防止程序对栈内存的限制而导致程序运行出错。

2021-02-18 16:09:13 357 1

原创 STL——queue 常用函数

1. push()2. front()、back()3. pop()4. empty()5. size()

2021-02-18 13:04:06 280

原创 STL——map 常用函数

1. find(key)返回键为 key 的映射的迭代器#include<stdio.h>#include<map>using namespace std;int main(){ map<char, int> mp; mp['m'] = 20; mp['r'] = 30; mp['a'] = 40; map<char, int>::iterator it = mp.find('a'); printf(

2021-02-18 10:08:52 279

原创 STL—— set 常用函数

set 内的元素自动递增排序,且自动去除了重复元素。set 只能通过迭代器(iterator)访问容器内的元素。1. insert(x)2. find(value)#include<stdio.h>#include<set>using namespace std;int main(){ set<int> st; for(int i = 1; i <= 3; i++) { st.insert(i); } set&l

2021-02-10 13:15:49 197

原创 STL——vector 常用函数

1. push_back(x)#include<stdio.h>#include<vector>using namespace std;int main(){ vector<int> vi; for(int i = 1; i <= 5; i++) { vi.push_back(i); } for(vector<int>::iterator it = vi.begin(); it != vi.end();

2021-02-10 10:27:13 230

原创 数学问题——组合数的计算

#include<stdio.h>const int n = 60;int res[n][n];void calC(){ for(int i = 0; i < n; i++) { res[i][0] = 1; res[i][i] = 1; } for(int i = 2; i < n; i++) { for(int j = 1; j < i; j++) { res[i][j] = res[i - 1][j - 1] + res[i - .

2021-02-10 09:25:38 138

原创 数学问题——关于n!的一个问题

2021-02-09 17:35:26 178

原创 数学问题——大整数减法

#include<stdio.h>#include<string.h>struct bign{ int d[1000]; int len; bign() { memset(d, 0, sizeof(d)); len = 0; }};bign change(char str[]){ bign a; a.len = strlen(str); for(int i = 0; i < a.len; i++) { a.d[i] = str[a..

2021-02-09 11:17:54 71

原创 数学问题——大整数加法

#include<stdio.h>#include<string.h>struct bign{ int d[1000]; int len; bign() { memset(d, 0, sizeof(d)); len = 0; }};bign change(char str[]){ bign a; a.len = strlen(str); for(int i = 0; i < a.len; i++) { a.d[i] = str[a..

2021-02-09 10:58:49 72

原创 数学问题——质因子分解(优化)

#include<stdio.h>#include<math.h>const int maxn = 100010;bool isPrime(int n){ int sqr = (int) sqrt(1.0 * n); for(int i = 2; i < sqr; i++) { if(n % i == 0) return false; } return true;} int prime[maxn], pNum..

2021-02-09 09:49:04 258

原创 数学问题——质因子分解

#include<stdio.h>#include<math.h>const int maxn = 100010;bool isPrime(int n){ int sqr = (int) sqrt(1.0 * n); for(int i = 2; i < sqr; i++) { if(n % i == 0) return false; } return true;} int prime[maxn], pNum .

2021-02-09 09:39:43 167

原创 数学问题——数素数

#include<stdio.h>const int maxn = 1000001;int prime[maxn], num = 0;bool p[maxn] = {0};void Find_Prime(int n){ for(int i = 2; i < maxn; i++) { if(p[i] == false) { prime[num++] = i; if(num >= n) break; for(int j = i + i; j ..

2021-02-08 10:02:13 64

原创 数学问题——素数表的获取(Eratosthenes筛法)

#include<stdio.h>#include<math.h>int prime[101], pNum = 0;bool p[101] = {0};void Find_Prime(){ for(int i = 2; i < 101; i++) { if(p[i] == false) { prime[pNum++] = i; for(int j = i + i; j < 101; j = j + i) { p[j] .

2021-02-08 09:39:22 100

原创 数学问题——素数表的获取

#include<stdio.h>#include<math.h>bool isPrime(int n){ if(n <= 1) return false; int sqr = (int) sqrt(1.0 * n); for(int i = 2; i <= sqr; i++) { if(n % i == 0) return false; } return true;}int prime[101], pNum = 0;bool p[10..

2021-02-08 09:12:04 74

原创 数学问题——分数的表示和化简

#include<stdio.h>#include<math.h>struct Fraction{ int up, down;};int gcd(int a, int b){ if(b == 0) return a; else return gcd(b, a % b);}Fraction reduction(Fraction result){ if(result.down < 0) { result.up = -result.up; re.

2021-02-07 10:56:57 225

原创 数学问题——最小公倍数

#include<stdio.h>int gcd(int a, int b){ if(b == 0) return a; else return gcd(b, a % b);}int main(){ int m, n, d; scanf("%d %d", &m, &n); d = gcd(m, n); printf("%d", (m / d) * n); return 0;}

2021-02-07 09:53:28 77

原创 数学问题——最大公约数(欧几里得算法)

#include<stdio.h>int gcd(int a, int b){ if(b == 0) return a; else return gcd(b, a % b);}int main(){ int m, n; scanf("%d %d", &m, &n); printf("%d", gcd(m, n)); return 0;}

2021-02-07 09:42:59 88

原创 简单数学——数字黑洞

#include<stdio.h>#include<algorithm>using namespace std;bool cmp(int a, int b){ return a > b;}void to_array(int n, int num[]){ for(int i = 0; i < 4; i++) { num[i] = n % 10; n /= 10; }}int to_number(int num[]){ int su.

2021-02-07 09:26:06 182

原创 活用递推——有几个 PAT

#include<stdio.h>#include<string.h>const int maxn = 100010;const int MOD = 1000000007;char str[maxn];int leftNumP[maxn] = {0};int main(){ gets(str); int len = strlen(str); for(int i = 0; i < len; i++) { if(i > 0) leftNumP[i..

2021-02-06 13:39:35 59

原创 two pointers——快速排序

int Partition(int A[], int left, int right){ int temp = A[left]; while(left < right) { while(left < right && A[right] > temp) right--; A[left] = A[right]; while(left < right && A[left] <= temp) left++; A[right] =

2021-02-06 12:06:03 104

原创 two pointers——归并排序

const int maxn = 100;void merge(int A[], int L1, int R1, int L2, int R2){ int i = L1, j = L2; int temp[maxn], index = 0; while(i <= R1 && j <= R2) { if(A[i] <= A[j]) temp[index++] = A[i++]; else temp[index++] = A[j++]; } while(

2021-02-06 11:45:00 50

原创 two pointers——找 M 问题

while(i < j){ if(a[i] + a[j] == M) { printf("%d %d", i, j); i++; j--; } else if(a[i] + a[j] < M) i++; else j--;}

2021-02-06 11:11:31 93

原创 二分——快速幂的递归和迭代求法

递归#include<stdio.h>typedef long long LL;LL binaryPow(LL a, LL b, LL m){ if(b == 0) return 1; if(b % 2 == 1) return a * binaryPow(a, b - 1, m) % m; else{ LL mul = binaryPow(a, b / 2, m); return mul * mul % m; }}迭代#include<stdio.h&gt

2021-02-05 22:48:23 108

原创 二分法拓展——求根号2近似值

#include<stdio.h>#include<math.h>const double eps = 1e-5;double f(double x){ return x * x;}double calSqrt(){ double left = 1, right = 2, mid; while(right - left > eps) { mid = (left + right) / 2; if(f(mid) > 2) right = mid;

2021-02-05 21:39:26 2132

原创 二分——二分查找(存在重复元素)

#include<stdio.h>int lower_bound(int A[], int left, int right, int x){ // 找第一个大于等于 x 的位置 int mid; while(left < right) { mid = (left + right) / 2; if(A[mid] >= x) right = mid; else left = mid + 1; } return left;}int upper_boun.

2021-02-05 11:50:27 428

原创 二分——二分查找(不存在重复元素)

#include<stdio.h>int binarySearch(int A[], int left, int right, int x){ int mid; while(left <= right) { mid = (left + right) / 2; if(A[mid] == x) return mid; else if(A[mid] > x) right = mid - 1; else left = mid + 1; } retur

2021-02-05 10:34:12 294

《嵌入式系统原理及应用》复习手册完整版.docx

详细整理《嵌入式系统原理及应用》第三版考试重点内容,且涵盖所有编程模板。

2021-05-18

微机原理与接口技术实验1~7.rar

四则运算、代码转换、8255并口控制器、8253计数器、8259中断控制器、AD / DA转换器 共七个实验,包含七个实验报告。

2021-01-19

数据结构课程设计.rar

南京航空航天大学 - 计算机科学与技术学院 - 数据结构课程设计,含源代码及实验报告。

2021-01-19

上机实验 100分.rar

构造PL/0语言的词法分析器、语法分析器,词法分析部分依据状态转换图实现编程,语法分析部分采用递归下降实现,具有一定的出错处理能力(提示出错具体行列位置以及给出原因),编程语言C++。代码详细易懂,全部源码,已经验收且满分,按照压缩包中 Readme.txt 文件照做即可。

2020-11-18

空空如也

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

TA关注的人

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