摘要:
1.概念1.1 性质:一颗二叉树,可以为空;如果不为空,满足以下性质:非空左子树的所有键值小于根结点的键值非空右子树的所有键值大于根节点的键值左右子树都是二叉搜索树1.2 举例说明:2.二叉搜索树的查找2.1 思路:查找从根节点开始,如果树为空,则返回NULL若搜索树... 阅读全文
摘要:
1.C和C++的区别:C语言可以在C++编译器上完美运行,即C属于C++C++比C多出来一些函数库C++是面向对象编程(即有class以及相关工具)2.如何从C过渡到C++2.1 代码实例:(C语言版)uva11000.#includeint main(){ long... 阅读全文
摘要:
个人笔记,仅供复习1.概念:给定一个集合,枚举所有可能的子集。2.常用算法增量构造法位向量法二进制法3.增量构造法3.1 思路:一次选出一个元素放到集合中。3.2 代码实例:void print_subset(int n,int *A,int cur){ for(in... 阅读全文
摘要:
枚举排列常用的方法有两种:一是递归枚举,二是用STL中的next_permutation。1.枚举递归:void print_permutation(int n,int *p,int *A,int cur){ if(cur == n){ for(int i = 0;... 阅读全文
摘要:
uva1600 原题链接:https://vjudge.net/problem/UVA-1600解析: 这题很明显用BFS最短路来做(当然也有其他方法)。但是这题的BFS略有不同,和普通BFS(以下普通BFS均为此意)最大的区别在于:普通BFS能走的路是... 阅读全文
摘要:
已知先序遍历和中序遍历,可以求出后序遍历已知后序遍历和中序遍历,可以求出先序遍历已知先序遍历和后序遍历,不可求出中序遍历1.已知先序遍历和中序遍历,求后序遍历1.1 解题思想: 由先序遍历的特点可知,先序遍历第一个元素为二叉树的根。由中序遍历的特点可知,... 阅读全文
摘要:
1.头文件:include2.定义:优先队列和队列一样,只能从队尾插入元素,从队首删除元素。队列中最大的元素总是位于队首。可以通过重载 队列名;5.常用的声明:5.1基本常量的优先队列:priority_queue q1;priority_queue q2;5.2常用... 阅读全文
摘要:
个人笔记,仅供复习1.概念:离散化就是把无限空间的有限个体映射到有限空间去,从而大幅节省空间或时间。基本思想就是在众多可能的情况中“只考虑我需要用的值”2.适用范围:除了对于较大整数需要使用离散化之外,对于一些需要使用整型数据结构,但给出的数据却是小数的也可以使用离散... 阅读全文
摘要:
1.概念:模运算是指取模运算,即求m/n的余数。模运算有许多基本规则,熟练掌握可以更好的编程。2.交换律: (a + b) % m = (b + a) % m (a * b) ... 阅读全文