数据结构
文章平均质量分 79
ivysister
这个作者很懒,什么都没留下…
展开
-
数据结构- 堆
堆排序是最重要的排序算法之一,在平时的开发以及面试中经常会用到。堆的特点是: 1,有一颗完全二叉树构成,如图1; 2,可分为最大堆和最小堆。最大堆的意思就是:任何根节点的数据不小于左右孩子节点的数据;反之,最小堆的意思就是任何节点的数据不大于左右孩子节点的数据; 3,堆排序的算法复杂度为O(NlgN),比冒泡和插入快,究转载 2015-06-05 16:54:04 · 497 阅读 · 0 评论 -
关于图的一些算法
图可以用邻接表和邻接矩阵表示一.邻接矩阵: 1.邻接矩阵的生成(无向图): 数据结构: #define maxvertexnum 100 //最大顶点数设为100 typedef char vertextype; //顶点类型设为字符型 typedef int edgetype; //边的权值设为整型原创 2015-12-08 12:47:47 · 711 阅读 · 0 评论 -
深入浅出的讲解c++多态性
1. 用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。2. 存在虚函数的类都有一个一维的虚函数表叫做虚表。类的对象有一个指向虚表开始的虚指针。虚表是和类对应的,虚表指针是和对象对应的。3. 多态性是一个接口多种实现,是面向对象的核心。分为类的多态性和函数的多态性。4. 多态用虚函数来实现,结合动态绑定。5. 纯虚函数是虚函数再加上= 0。6. 抽象类是指包转载 2016-03-03 11:37:00 · 448 阅读 · 0 评论 -
三大算法总结
一。分治:基本思想: 将一些难以解决的大问题分割成规模较小的相同问题,对于一个问题规模为n的问题,如果能直接解决,则解决,否则将其拆开,分治法适用的情况 分治法所能解决的问题一般具有以下几个特征: 1) 该问题的规模缩小到一定的程度就可以容易地解决 2) 该问题可以分解为若干个规模较小的相同问题,即该问题具有最优子结构性质。原创 2016-03-05 20:50:04 · 1620 阅读 · 0 评论 -
析构函数和构造函数的调用顺序
先看看构造函数的调用顺序规则,只要我们在平时编程的时候遵守这种约定,任何关于构造函数的调用问题都能解决;构造函数的调用顺序总是如下:1.基类构造函数。如果有多个基类,则构造函数的调用顺序是某类在类派生表中出现的顺序,而不是它们在成员初始化表中的顺序。2.成员类对象构造函数。如果有多个成员类对象则构造函数的调用顺序是对象在类中被声明的顺序,而不是它们出现在成员初始化表中的顺序。3.派生类转载 2016-03-05 21:33:54 · 628 阅读 · 0 评论 -
很好的static用法总结,真真受教了
C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。1.面向过程设计中的static1.1静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下: //Example 1#include转载 2016-03-15 12:51:28 · 367 阅读 · 0 评论 -
stl: map和hashmap比较 hashmap与hashtable
map与hashmap2。map简介map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实值,而不能修改key。3。map的功能自动建立Key - value的对应。key 和 value可以是任意你需要的类型。根据key值快速查找记录,查找的复杂度基本是Log(N转载 2016-03-26 14:22:08 · 826 阅读 · 0 评论