![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
19年复习知识点
pissjello
这个作者很懒,什么都没留下…
展开
-
C++中简单使用正则表达式
C++11可以使用正则表达式来解决字符串匹配查找替换问题,加入头文件regex。1.匹配bool regex_match(string s,regex pattern)bool regex_match(string s,smatch result,regex pattern)bool regex_match(s.cbegin()+i,s.cend(),smatch result,regex...原创 2019-05-03 21:46:07 · 9847 阅读 · 0 评论 -
前缀表达式与后缀表达式求法(栈的应用)
1.前缀、中缀、后缀表达式中缀表达式即为人们熟悉的数学运算式子写法。而前缀、后缀表达式是为了计算机计算方便的写法。前缀表达式是一种没有括号的算术表达式,与中缀表达式不同的是,其将运算符写在前面,操作数写在后面。后缀表达式则是将操作数写在前面,运算符写在后面。前缀表达式又称波兰表达式,后缀表达式又称逆波兰表达式。通过利用栈的特性,我们可以从中缀表达式得到前后缀表达式,轻松的计算出其结果。我们...原创 2019-05-04 12:17:55 · 17009 阅读 · 5 评论 -
欧几里得算法与扩展欧几里得算法(求二元一次不定方程、乘法逆元)
1.欧几里得算法,即辗转相除法。用于求两个整数的最大公约数比较方便,时间复杂度为O(logN)N为两个整数的规模。最大公约数,是能够同时被两个整数整除的最大整数。比如说,求56和21的最大公约数:(每行数分别代表a=56,b=21,a%b)56 21 1421 14 714 7 07 0此时得到最大公约数为7。递归代码如下:int gcd(int a, int b){ ret...原创 2019-05-04 20:07:13 · 3321 阅读 · 0 评论 -
赫夫曼树与赫夫曼编码
1.赫夫曼树也叫最优二叉树,n个权值构造一颗有n个叶子结点的二叉树,且使叶子结点带权路径长度之和最小,则得到一颗赫夫曼树。2.赫夫曼树的构造⑴给定n个权值,构成一个森林的集合F,F中初始为n颗只有一个根节点的二叉树,即n个权值。⑵每次从F中取出根节点权值最小的二叉树,作为左右子树,得到一颗新树(这里规范一下,左子树根节点权值小于右子树根节点权值,这样可以得到唯一的赫夫曼树)⑶将新树加入森林...原创 2019-05-14 11:10:38 · 1663 阅读 · 0 评论 -
二叉树的建立和遍历C++
1.二叉树知识点复习二叉树是不存在度大于2的结点的树,且结点的子树有左右之分⑴主要性质:①二叉树的第i层最多有2^(i-1)个结点。②一颗深度为k的二叉树最多有2^k-1个结点。③设一颗二叉树的结点数为n,其中度为0,1,2的结点分别为n0,n1,n2,则有n0=n2+1.(树枝数=n-1=n1+2*n2)④具有n的结点的完全二叉树,其深度k为logn取下整+1。⑵满二叉树:一颗k...原创 2019-05-12 21:42:53 · 1124 阅读 · 1 评论 -
一般信号量 进程同步代码
//一般信号量解决进程同步问题typdef struct semaphore { int value; /*value>0表示可用资源数; value<0表示等待资源进程数; value=0表示现在没有可用资源,也没有等待使用资源的进程*/ struct pcb* list; }void P(semaphore s){ s.value--...原创 2019-08-21 10:42:14 · 373 阅读 · 0 评论 -
插入、选择、冒泡、快排等排序方法
1.插入排序(稳定,O(n²))数组前半部分为有序区,将ai和前面i个数依次比较,插入到合适的位置。void insert_sort(int *a, int n){ for (int i = 1; i < n; i++) // a[0]-a[i-1]为当前有序区 { int j = i - 1; //记录比较停止的位置,将当前数插入到它前面 int p...原创 2019-08-21 11:16:01 · 278 阅读 · 0 评论