自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

魏尔肖的博客

坚持下去

  • 博客(11)
  • 资源 (1)
  • 收藏
  • 关注

原创 AVL平衡树的旋转

AVL树是一种平衡查找树(每个节点左子树与右子树的高度差不超过1),这样可以保证树不偏向一边,使查找的时间复杂度降低。 需要给节点一个平衡因子_bf(右子树的高度减去左子树的高度)。 AVL树的插入分为下面几种情况: 在父节点的右子树插入节点,父节点的bf+1,如果父节点bf等于0,树平衡,插入成功,父节点bf等于1,右子树高度加1,接着向上调整。 在父节点的左子树插入节点,父节点的bf-1

2017-05-25 23:43:32 582

原创 用两个栈实现一个队列

栈是先进后出,队列是先进先出每次元素都push在st1中,pop的时候如果st2为空,将st1的栈顶元素放在st2的栈底,这样st1的所有元素都放在st2中,st1的栈底就是st2的栈顶,pop st2的栈顶,这样就满足了队列的先进先出。 #include <iostream>using namespace std;#include <stack>#include <stdlib.h>tem

2017-05-22 00:09:20 306

原创 Effective C++ 关于析构函数

条款七 带有多态性质的Base calsses应该声明一个virtual析构函数。 如果class带有任何的virtual, 他就应该有一个virtual 的析构函数。(虚函数会有额外的空间开销-虚表指针,不是所有的析构函都为virtual)。条款八 析构函数绝对不要吐出异常。如果一个被析构函数调用的函数可能抛出的异常析构函数应该捕捉任何异常,并不传播或者结束程序。如果需要对于某个函数运行期抛

2017-05-21 22:49:41 280

原创 Effective C++ 第五 六条C++默认编写调用哪些函数,如何明确拒绝自动生成的函数

c++中一个类如果没有自己声明,编译器会为它声明一个拷贝构造函数,赋值拷贝函数,一个析构函数。如果没有声明任何构造函数,会生成一个无参的构造函数。这些函数都是inline,且为public的。class Test{};//相当于class Test{Test(){...}Test(const Test& t){...}Test& operator = (const Test& t){..

2017-05-18 23:28:49 301

原创 Effective C++ 第四条 确定对象被使用前以先被初始化

为内置对象进行手工初始化,C++不保证初始化它们确保每一个构造函数都将对象的每一个成员初始化。#include <iostream>using namespace std;#include <string>class Test {public: Test(const string &str, const string& add, int num) { nam

2017-05-17 22:23:42 387

原创 Effective C++ 第三条,尽可能使用const

列表内容const可以修饰指针,也可以修饰指针所指物 char str[] = "ni hao"; char *p = str; // 非常量指针,非常量数据 const char *p1 = str; //非常量指针, 常量数据 char const *p2 = str; // 等于上一个 char *const p3 = str; //

2017-05-16 23:21:10 327

原创 查找二叉树的实现(查找,删除,插入)分别用递归和非递归

对于一个查找二叉树的每个节点X,它的左子树中的节点的关键值都小于X的关键值,右子树中的所有节点的关键值都大于X的关键值。 并且所有的关键值都是相异的,不存在相同的。 二叉树的平均深度是O(log N),对于查找树找一个元素最多查找树的高度次。#include <iostream>using namespace std;template <class K, class V>struct BS

2017-05-15 20:37:53 1501

原创 Effiective C++条款第二条 尽量以const,enum,inline,替换#define

宁可以编译器替换预处理器。#define MAX 1.623MAX 可能从未被编译器看见,编译器在处理之前预处理器就将MAX移走,只能看到1.623, 当运用这个常量并且出现错误时,错误信息就只会提到1.623。用const double Max = 1.623就不会出现这种问题。Max肯定会进入符号表。 常量作为类的成员时,将其申明为static将其作用域限制于class中class Gamep

2017-05-14 19:30:13 331

原创 优先级队列(二叉堆)

堆是一颗被完全填满的二叉树,底层的元素从左到右填入。 所以一个高度为h的堆有2^h到2^(h+1)-1个节点,这样的堆可以用一个数组来表示,堆顶为arr[0],父节点的下标为n,左儿子的下标就是2n+1, 堆有大堆(父节点的值大于儿子节点的值)和小堆(父节点的值小于儿子节点的值),大堆的根节点就是数组中最大的值,小堆的根节点就是数组中最小的值。堆只能访问根节点,能进行插入和删除操作。

2017-05-14 17:56:17 413

原创 二叉树面试题—前,中,后序(非递归),判断是否为完全二叉树

二叉树的基本操作Node* GetParent(Node* x) //得到父节点 { if ( _pRoot == NULL) return _pRoot; return _GetParent(_pRoot, x); } Node* Find(const T& value) //查找结点 { ret

2017-05-05 18:25:16 536

原创 密码学—如何随机生成大素数以及Miller Rabin素性检测方法

素数被利用在密码学上,所谓的公钥就是将想要传递的信息在编码时加入质数,编码之后传送给收信人,任何人收到此信息后,若没有此收信人所拥有的密钥,则解密的过程中(实为寻找素数的过程),将会因为找质数的过程(分解质因数)过久,使即使取得信息也会无意义 给出两个大素数,很容易就能将它们两个相乘。但是,给出它们的乘积,找出它们的因子就显得不是那么容易了。这就是许多现代密码系统的关键所在。如果能够找到解决整数分

2017-05-01 23:07:56 29997 4

webp格式文件,可以以用于测试

webp格式文件,可以以用于测试K

2018-09-27

空空如也

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

TA关注的人

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