随笔分类 - 数据结构与算法
摘要:1. 哈夫曼树的构造 给定N个权值分别为w1, w2, ..., Wn的节点。构造哈夫曼树的算法描述如下: 1)将这N个结点分别作为N棵树仅含一个结点的二叉树,构成森林F. 2)构造一个新节点,并从F中选取两棵根结点权值最小的树作为新节点的左、右子树,并且将新节点的权值置为左、右子树上根结点的权 值
阅读全文
摘要:#include <stdio.h> #include <string.h> #include <ctype.h> /*strstr_while字串模型*/ int Search_count(char *p, char *str) { int ncount = 0; if (NULL == p ||
阅读全文
摘要:1. 取两个字符串的最大公共子串#include #include using namespace std; int main() { int n = 0; string a, b, t; cin >> a >>b; for (int i=0; ii&&j-i>n; --j) { string temp = a.substr(i, j-i); if (b.fin...
阅读全文
摘要:算法的稳定性 如果待排序表中有两个元素 Ri 和 Rj,其对应的关键字keyi = keyj,注意是关键字相等,且在排序前 Ri 排在 Rj 前面,如果使用某一算法排序后,Ri 仍在 Rj 前面,则称这个算法是稳定的,否则是不稳定的。 在排序过程中,根据元素是否完全在内存中,可以将排序算法分为两类:内部排序是指在排序期间元素全部存放在内存中的排序:外部排序是指在排序期间元素...
阅读全文
摘要:#include <iostream> using namespace std; template <typename T> class BSTree; template <typename type> class BSTNode { friend class BSTree<type>; publi
阅读全文
摘要:c/c++的预处理定义: 一。Stringizing Operator (#) 在c和c++中数字标志符#被赋予了新的意义,即字符串化操作符。其作用是:将宏定义中的传入参数名转换成用一对双引号括起来的参数名字符串。其只能用于有传入参数的宏定义中,且必须置于宏定义体中的参数名前。 如: #define example(instr) printf("the input string is:/t%s/...
阅读全文