数据结构-----图的拓扑排序和关键路径算法

在介绍拓扑排序和关键路径之前,先引入AOE网络的概念: 该图为一个AOE网,顶点表示事件,如v1,v2,v3...。弧表示活动,如a1,a2,a3...,而每一条边表示的值为完成该活动所需的时间。 比如上图中,完成活动a1需要6个单位的时间,完成活动a3需要5个单位的时间。 AOE网络是一个加...

2016-12-30 19:28:16

阅读数 3665

评论数 0

数据结构-----AVL树的插入删除操作

对于AVL的插入和删除,主要利用的就是上篇文章所述的四种旋转操作,根据插入后不同的结构选用不同的方式复原平衡。 首先对于插入操作,有以下几个步骤: 步骤1:根据二叉树的性质:大的向右找,小的向左找。逐个比较要插入的值和节点的值的大小关系,找到应该插入的位置。 步骤2:在插入的位置新申请一个节点...

2016-12-29 11:09:08

阅读数 232

评论数 0

数据结构-----AVL树的旋转操作

本文主要讲解AVL的旋转操作,供自己复习用,如有不对之处请指出。另外图片是从链接处的大神那复制的,感觉文章写的很好,可以去学习。 http://www.cnblogs.com/QG-whz/p/5167238.html具体内容可以参考链接处的讲解。 AVL树定义:一颗空的二叉树是AVL树;如果...

2016-12-28 18:25:17

阅读数 240

评论数 0

C++学习笔记-----在一个构造函数中调用另一个构造函数

在构造函数中调用另一个构造函数如果一不注意就会有无限递归的危险,而且构造函数的参数的不同也决定了调用的不同,所以特意总结了一下哪些形式的调用时允许的: 首先假设构造函数调用时参数都是外部的变量,而不是一个常量。 第一种,也是C++11支持的一种调用方式。在函数的初始化列表中调用另一个构造函数:...

2016-12-27 00:37:17

阅读数 7151

评论数 2

C++学习笔记-----在重载的赋值运算函数中调用拷贝构造函数

类的拷贝构造函数与赋值运算不同,拷贝构造函数是对这个类进行初始化的过程,而赋值是删除原有的东西,赋予它新的东西。 但是二者在实现上是互通的。 template graphChain::graphChain(const graphChain& theChain) { ...//实现拷贝...

2016-12-27 00:20:03

阅读数 239

评论数 0

C++学习笔记-----不要在构造函数和析构函数中调用虚函数

考虑下面的程序: #include using namespace std; class Base { public: Base() { cout << "Base Construct" << endl; func(); } ~Base() {...

2016-12-22 10:37:28

阅读数 200

评论数 0

C++学习笔记-----operator=函数处理自赋值

很多时候我们需要对类使用赋值运算符operator=函数来将一个类赋值给令一个类,但是如果类的成员变量中存在指针类型的变量,而且这个指针的内存是从heap内存中申请的时候,在实现赋值运算符函数的时候要处理自赋值的情况,即a = a的情况,举个例子: class Widget { public: ...

2016-12-21 22:05:39

阅读数 175

评论数 0

C++学习笔记-----永远不要在派生类中改变虚函数的默认参数值

提到虚函数,我们就会自然而然的想到多态,但是当虚函数中存有默认参数值的时候,在派生类中重定义这个虚函数时不可以改变这个参数的值。 请看下面的例子: #include "stdafx.h" #include using namespace std; class Base { p...

2016-12-20 19:57:23

阅读数 900

评论数 2

C++学习笔记-----继承体系中函数的重载,覆盖和隐藏的区别

1.在同一个作用域中定义的同名不同参的一些为重载。 2.若在基类中定义了某一non_virtual函数,在派生类重存在同名函数(不需要参数列表相同),基类的该函数在派生类中是不可见的,如若用派生类的实例化对象调用基类的该函数会编译错误。此种情况即为隐藏,指基类的函数在派生类中隐藏了,编译器找不到这...

2016-12-20 18:24:49

阅读数 140

评论数 0

C++学习笔记-----存在多态调用时,为基类定义虚析构函数

在C++的继承体系中,构造函数和析构函数的执行顺序是完全相反的。 对于构造函数:从继承体系的最顶层的基类开始,一步步往下构建。即构造顺序是  基类--->>派生类。 对于析构函数:从继承体系的最底层的派生类开始,一步步向上析构。即析构顺序是  派生类-->>基类。 这...

2016-12-20 11:23:27

阅读数 195

评论数 0

C++类成员函数在.cpp中设置成inline后无法解析的问题

内联函数:告知编译器在进行有内联标识的函数调用时将函数体部分在调用处展开。这样做可以消除函数传参(堆栈调用)的负担,提高了函数的调用效率。 而且inlining的函数并不存在,因为已经被展开了。 如果需要定义一个内联函数,需要在函数体定义的地方使用inline关键字标识,写在函数声明处...

2016-12-20 10:50:34

阅读数 1496

评论数 1

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