摘要:
排序算法有很多很多种,其中最简单最适合入门的莫过于冒泡排序,所以我们从冒泡排序讲起,逐渐入门排序算法。 冒泡排序 冒泡排序的实现步骤十分简单,对于一个数组A,我们从第一个数开始遍历n次,遍历到的数如果比后面一个数大,便交换这个数和后面那个数。 比如一个数组4 2 4 5 1,从第一个数开始,发现4比 阅读全文
摘要:
B树 B树其实是一种多路查找树,它的每个结点可以拥有多个孩子而不是像二叉树那样最多只能拥有两个孩子,同时相对应的每个结点拥有多个元素以分出多个孩子。 其中B树中结点最大的孩子数目被称为B树的阶m。例如下图就是一个五阶B树(最右边的叶子结点拥有5个孩子)。 B树的性质 如果根结点不是叶结点,则其至少有 阅读全文
摘要:
最小生成树定义: 构造连通网的最小代价生成树称为最小生成树(Minimum Cost Spanning Tree)。即有n个城市,如何修最短的路将所有的城市连接起来。 构造最小生成树主要有两种算法一种是普里姆(Prim)算法,一种是克鲁斯卡尔(Kruskal)算法。 Prim在稠密图中比Kruska 阅读全文
摘要:
图的定义 线性表中我们把数据元素叫元素,树中将数据元素叫结点,在图中数据元素,我们则称之为顶点(Vertex)。 图( Graph)是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),其中,G表示一个图,V是图G中顶点的集合,E是图G中边的集合。 需要注意的是线性表中可以没有数据 阅读全文
摘要:
前置知识 路径长度和带权路径长度 路径长度:两节点间路径的分支数量为路径长度。如二叉树a从根节点到D节点的路径长度为4,根节点到B节点的路径长度为2。 树的路径长度:从根节点到每一个结点的路径长度之和。如二叉树a的路径长度为:1+1+2+2+3+3+4+4=20。 带权路径长度:从该节点到树根节点的 阅读全文
摘要:
树的定义: 树是n个节点(n≥0)的有限集,n=0称为空树。在任意一个非空树中,有且只有一个根节点,其余节点可以分为m个互不相交的有限集,并且每一个集合本身又是一棵树称为根的子树。 节点的分类: 节点拥有的子树数量称为节点的度。度为0的节点称为叶子结点,度不为0的节点称为分支节点,除根节点外的分支节 阅读全文
摘要:
当我们村里第一次通往,当我们的电脑第一次连接上网络,并打开一个网页会触发怎样的事件呢? 1.准备阶段:为主机获取一个IP地址 对于我们大部分家用主机来说第一步便是要连接上路由器,这时候我们的主机是没有IP地址的,没有IP地址什么也干不了,但是我们的主机有一个MAC地址,这是主机的网络接口生产出来便自 阅读全文
摘要:
堆被破坏的问题通常是因为内存写越界造成的。因为你分配的两段内存可能恰好连续,前一段内存在写的时候越界,写到第二段的开头,将一些堆数据破坏了。因此报堆损坏的错。也可能是内存不足造成的。 解决方案:打开项目属性-->配置属性-->C/C++-->代码生成-->运行时库,改成多线程调试DLL 阅读全文
摘要:
在调用MultiByteToWideChar时发现,写入的CString变量中的字符串全都是‘췍’,经过调试后发现原因是此时的const char*为NULL,因此在使用MultiByteToWideChar时应该先判断是否为NULL。 阅读全文