随笔分类 - 选修课程-数据结构
摘要:归并排序是一个稳定的排序算法 核心思路为:不断地将两个有序序列合并为一个更长的有序序列 现将长度为1的相邻子序列合并,然后长度为2的,长度为4的,直到整个序列被合并。 #include<iostream> #include<cstdio> #include<cmath> #include<mallo
阅读全文
摘要:堆排序是个不稳定的算法 堆排序的思路就是不断维护一个大根堆(或者小根堆),然后不断把堆顶元素拿出来(当然拿出来之后还需要维护),就可以得到一个有序序列。 1,根据所给序列建立一个大根堆。 2,从大根堆中拿出根元素(此时打破了堆的结构,需要对堆进行维护,即使得剩下的元素满足堆的要求)。 3,不断重复步
阅读全文
摘要:AOE网(activity on edge network):在带权有向图中,用顶点表示事件,用有向边表示活动。边权表示活动的持续时间。 源点,终点:AOE图中有唯一的源点和终点,表示活动的开始与终结。 关键路径:所有的活动都完成时整个工程所花费的时间,其实也就是源点到终点的最长路径,该最长路径被称
阅读全文
摘要:提供了邻接表结构体的标准类型; 以及基于该类型结构体的深搜函数; void CreateAdj(AdjGraph *&G) { //创建图的邻接表 int i,j; int n; int A[MAXN][MAXN]; printf("请输入矩阵的阶数:\n"); scanf("%d",&n); pr
阅读全文
摘要:让使用频率高的(权值高)节点离根部更近,生成一个哈夫曼树。 具体算法为:1输入各节点权重,把每一个节点当成一课子树,从而得到一片森林 2从森林中寻找权值最小的两棵树,把他们合并为一课新的树,树的权值为原来这两棵子树的权值之和 3不断进行第二步,直到把森林合并为一个树时停止 这样就可以生成一棵哈夫曼树
阅读全文
摘要:根据二叉树的中序序列+前序序列 可以唯一确定一个二叉树,这里给出了构造方法。
阅读全文
摘要:稀疏矩阵压缩了储存空间。但在进行运算的时候却没有原矩阵这样方便。 其中,data[0].row data[0].col 储存该矩阵的行和列。 另外,其实在三元数组储存的时候,该程序是默认输入的时候行优先的格式。否则就会出现这种不识别的情况,如果想兼容性强一点,就预先排个序。 在用三元组储存稀疏矩阵的
阅读全文