04 2014 档案
摘要:C/C++中的联合体利用union可以用相同的存储空间存储不同型别的数据类型,从而节省内存空间。当访问其内成员时可用"."和"->"来直接访问。当多个数据需要共享内存或者多个数据每次只取其一时,可以利用联合体(union)。在C Programming Language 一书中对于联合体是这么描述的...
阅读全文
摘要:原创地址:http://www.cnblogs.com/chio/archive/2007/07/18/822389.html首先回顾一下C++类型转换:C++类型转换分为:隐式类型转换和显式类型转换第1部分.隐式类型转换又称为“标准转换”,包括以下几种情况:1) 算术转换(Arithmetic c...
阅读全文
摘要:程序的内存分配 一个由C/C++编译的程序占用的内存分为以下几个部分 1、栈区(stack)― 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)― 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆...
阅读全文
摘要:分支限界法基本思想:分支限界法常以广度优先或以最小耗费(最大效益)优先的方式搜索问题的解空间树。在分支限界法中,每一个活结点只有一次机会成为扩展结点。活结点一旦成为扩展结点,就一次性产生其所有儿子结点。在这些儿子结点中,导致不可行解或导致非最优解的儿子结点被舍弃,其余儿子结点被加入活结点表中。此后,...
阅读全文
摘要:回溯法回溯法(探索与回溯法)是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。基本思想:回溯法在问题的解空间树中,按深度优先策略,从根结点出发搜索解...
阅读全文
摘要:动态规划基本思想:动态规划算法通常用于求解具有某种最优性质的问题。在这类问题中,可能会有许多可行解。每一个解都对应于一个值,我们希望找到具有最优值的解。动态规划算法与分治法类似,其基本思想也是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到原问题的解。与分治法不同的是,适合于用...
阅读全文
摘要:分治算法思想:分治算法的基本思想是将一个规模为N的问题分解为K个规模较小的子问题,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。分治法应用场景:运用分治策略解决的问题一般来说具有以下特点:1、原问题可以分解为多个子问题这些子问题与原问题相比,只是问题的规模有所降低,其结构...
阅读全文
摘要:贪心算法贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法不是对所有问题都能得到整体最优解,但对范围相当广泛的许多问题他能产生整体最优解或者是整体最优解的近似解。用贪心法设计算法的特点是一步...
阅读全文
摘要:构造函数和析构函数的调用顺序构造函数的调用顺序:当建立一个对象时,首先调用基类的构造函数,然后调用下一个派生类的构造函数,依次类推,直至到达最底层的目标派生类的构造函数为止。析构函数的调用书序:当删除一个对象时,首先调用该派生类的析构函数,然后调用上一层基类的析构函数,依次类推,直到到达最顶层的基类...
阅读全文
摘要:数组指针:即指向数组的指针(也称行指针)。指针数组:即用于存储指针的数组,也就是数组元素都是指针。数组指针示例:int (*p)[n];()优先级高,首先说明p是一个指针,指向一个整型的一维数组,这个一维数组的长度是n。执行p+1时,p要跨过n个整型数据的长度。指针数组示例:int *p[n];[]...
阅读全文
摘要:设G={V,E}是一个具有 n 个顶点的有向图,V中的顶点序列 v1,v2,......,vn,满足若从顶点 vi 到 vj 有一条路径,则在顶点序列中顶点 vi 必在顶点 vj 之前。则称这样的顶点序列为一个拓扑序列。在一个表示工程的有向图中,用顶点表示活动,用弧表示活动之间的优先关系,这样的有向...
阅读全文
摘要:C++类所占内存大小计算文章出处:http://blog.csdn.net/chenchong08作者联系方式:vision_chen@yeah.net说明:笔者的操作系统是32位的。class A {};sizeof( A ) = ?sizeof( A ) = 1明明是空类,为什么编译器说它是1呢...
阅读全文
摘要:1、Dijkstra算法求一个顶点到其它所有顶点的最短路径,是一种按路径长度递增的次序产生最短路径的算法。算法思想:按路径长度递增次序产生算法:把顶点集合V分成两组:(1)S:已求出的顶点的集合(初始时只含有源点V0)(2)V-S=T:尚未确定的顶点集合将T中顶点按递增的次序加入到S中,保证:(1)...
阅读全文
摘要:c语言中的浮点数在内存中的表示(VC++编译器中):char:1个字节short:2个字节int:4字节long:4字节float:4字节(单精度)double:8字节(双精度)参考:http://www.cnblogs.com/jillzhang/archive/2007/06/24/793901...
阅读全文
摘要:1、Prim 算法以某顶点为起点,逐步找各顶点上最小权值的边来构建最小生成树。2、Kruskal 算法直接寻找最小权值的边来构建最小生成树。比较:Kruskal 算法主要是针对边来展开,边数少时效率会非常高,所以对于稀疏图有很大的优势。Prim 算法针对顶点展开,对于稠密图,即边数非常多的情况下会更...
阅读全文
摘要:图的存储结构1)邻接矩阵用两个数组来表示图,一个一维数组存储图中顶点信息,一个二维数组(邻接矩阵)存储图中边或弧的信息。2)邻接表3)十字链表4)邻接多重表5)边集数组本文只用代码实现用邻接矩阵方式存储图。忘见谅。图的遍历1)深度优先遍历(Depth_First_Search,DFS)从图中某个顶点...
阅读全文