数据结构
阳光的颜色
我喜欢程序员,他们单纯固执,容易体会到成就感。面对压力,能够挑灯夜战不眠不休。面对困难,能够迎难而上挑战自我。他们也会感到困惑与傍徨,但每个程序员的心中都有一个比尔盖茨或是乔布斯的梦想,用智慧开创属于自己的事业。我想说的是,其实我是一个程序员
展开
-
拓扑排序问题
拓扑排序算法的基本思路:从AOV网中,选择一个入度为0的顶点输出,然后删除此顶点,并删除此顶点为弧尾的弧,继续重复此步骤,直到输出所有全部顶点或者AOV网中不存在入度为0(存在环)的顶点为止。原创 2014-11-13 23:36:51 · 2237 阅读 · 0 评论 -
AVL树详解
平衡二叉树定义平衡二叉树简称平衡树,又称为AVL树。若一棵二叉树的任何节点的左右子树高度差最多相差1,此二叉树即是平衡二叉树。把二叉树的任何节点的左子树高度减去右子树高度定义为该节点的平衡因子。二叉平衡树的平衡因子只能是1、0或者-1。平衡二叉树是对二叉搜索树(又称为二叉排序树)的一种改进。二叉搜索树有一个缺点就是,树的结构是无法预料的,随意性很大,它只与节点的值和插入的顺序有关系,往往得原创 2015-08-10 11:48:26 · 1410 阅读 · 0 评论 -
二叉搜索树
二叉查找树定义二叉查找树(Binary Search Tree),(又:二叉搜索树,二叉排序树)它或者是一棵空树,或者是具有下列性质的二叉树: 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值; 若它的右子树不空,则右子树上所有结点的值均不小于它的根结点的值; 它的左、右子树也分别为二叉排序树。二叉排序树的查找过程和二叉树类似,通常采取二叉链表作为二叉排序树的存储结构。中序遍历二叉排序树可得到一个关键字的有序序列,一个无序序列可以通过构造一棵二叉排序树变成一个有序序列,构造树的过程即为对无原创 2015-08-08 16:34:33 · 952 阅读 · 0 评论 -
去除数组中的重复元素
开辟辅助空间和不开辟辅助空间去除数组中的重复值原创 2015-03-17 22:58:48 · 4407 阅读 · 0 评论 -
二叉树的相关操作代码(继续补全中)
#ifndef BITREEOPERATION_H#define BITREEOPERATION_H#include#include#include#includetypedef char ElemType;typedef struct BiNode{ ElemType data; struct BiNode *lchild,*rchild;}BiNode,*BiTree;原创 2015-03-27 15:17:50 · 850 阅读 · 0 评论 -
数据结构图篇(自己容易理解有误的地方)
图是有顶点的又穷非空集合和顶点之间的原创 2014-11-03 20:10:19 · 898 阅读 · 0 评论 -
求解集合的交集问题
思路1:排序法 对集合A和集合B进行排序(升序,用快排,平均复杂度O(N*logN)),设置两个指针p和q,同时指向集合A和集合B的最小值,不相等的话移动*p和*q中较小值的指针,相等的话同时移动指针p和q,并且记下相等的数字,为交集的元素之一,依次操作,直到其中一个集合没有元素可比较为止。 优点:操作简单,容易实现。 缺点:使用的排序算法不当,会耗费大量的时间,比如原创 2014-10-12 19:10:06 · 3065 阅读 · 0 评论 -
生成树和最小生成树
1.首先,我们来看一下,连通图的生成树定义原创 2014-11-13 22:13:34 · 914 阅读 · 0 评论 -
最短路径问题
1.在网图(带权值的图)和非网图,原创 2014-11-13 22:58:48 · 1062 阅读 · 0 评论 -
关键路径问题
拓扑排序主要是为了解决一个工程能否顺利进行的问题,但有时我们还需要解决工程完成所需要的最短时间问题。我们如果对一个流程图获得最短时间,就需要分析它们的拓扑关系,并且找到当中的最关键流程,这个流程的时间就是最短时间。原创 2014-11-14 15:59:21 · 5198 阅读 · 0 评论 -
红黑树
红黑树是一种自平衡二叉查找树。它的统计性能要好于平衡二叉树(AVL树),因此,红黑树在很多地方都有应用。在C++ STL中,很多部分(目前包括set, multiset, map, multimap)应用了红黑树的变体(SGI STL中的红黑树有一些变化,这些修改提供了更好的性能,以及对set操作的支持)。它是复杂的,但它的操作有着良好的最坏情况运行时间,并且在实践中是高效的: 它可以在O(l原创 2015-08-11 10:47:09 · 787 阅读 · 0 评论