随笔分类 - DataStructure
摘要:前言 红黑树的起源,自然是二叉查找树了,这种树结构从根节点开始,左子节点小于它,右子节点大于它。每个节点都符合这个特性,所以易于查找,是一种很好的数据结构。但是它有一个问题,就是容易偏向某一侧,这样就像一个链表结构了,失去了树结构的优点,查找时间会变坏。 所以我们都希望树结构都是矮矮胖胖的,像这样:
阅读全文
摘要:设G=(V,E)是无向连通带权图,V={1,2,…,n}; 设最小生成树T=(V,TE),该树的初始状态为只有n个顶点而无边的非连通图T=(V,{}),Kruskal算法将这n个顶点看成是n个孤立的连通分支。 它首先将所有的边按权值从小到大排序,然后只要T中选中的边数不到n-1,就做如下的贪心选择:
阅读全文
摘要:适用范围:要求无向图 prim算法(读者可以将其读作“普里姆算法”)用来解决最小生成树问题, 其基本思想是: ·对图G(VE)设置集合S,存放已被访问的顶点, ·然后每次从集合V-S中选择与集合S的最短距离最小的一个顶点(记为u),访问并加入集合S。 ·令顶点u为中介点,优化所有从u能到达的顶点v与
阅读全文
摘要:最小生成树: 最小生成树(Minimum Spanning Tree,MST)是在一个给定的无向图G(V,E)中求一棵树T,使得这棵树拥有图G中的所有顶点,且所有边都是来自图G中的边,并且满足整棵树的边权之和最小。 图10-43给出了一个图G及其最小生成树T,其中较粗的线即为最小生成树的边。可以看到
阅读全文
摘要:AOV网: 顶点活动(Activity On Vertex,AOV)网是指用顶点表示活动,而用边集表示活动间优先关系的有向图。例如图10-57的先导课程示意图就是AOV网,其中图的顶点表示各项课程,也就是“活动”;有向边表示课程的先导关系,也就是“活动间的优先关系”。显然,图中不应当存在有向环,否则
阅读全文
摘要:哈希表结构讲解: 哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 记录的存储位置 = function(关键字)
阅读全文
摘要:影响排序性能的要素: 时间性能; 辅助空间 算法的复杂度 简单排序【n^2】 算法思想: 第一趟: 从第一个记录开始,通过n-1次关键字比较,从n个记录中选出最小的并和第一个记录交换; 第二趟: 从第二个记录开始,通过n-2次关键字比较,从n -1个记录中选出最小的并和第二个记录交换; 冒泡排序【n
阅读全文
摘要:/*********************讲解后期补充*****************/ 先上代码
阅读全文
摘要:/*自己看了半天也没看懂代码,下次再补充说明*/ 解释: 平衡二叉树(Self-Balancing Binary Search Tree 或Height-Balanced Binary Search Tree),是一种二叉排序树,其中每一个节点的左子树和右子树的高度差至多等于1。 实现原理: 平衡二
阅读全文
摘要:讲解: 总结一句话: 小的左边,大的放右边。 特点: 二叉排序树(Binary Sort Tree),又称为二叉查找树。它或者是一棵空树,或者是具有下列性质的二叉树。 若它的左子树不空,则左子树上所有结点的值均小于它的根结构的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的
阅读全文
摘要:/*********************************迪杰斯卡特(Dijstra)**************************/ 讲解: 1、Dijkstra算法介绍 算法特点: 迪科斯彻算法使用了广度优先搜索解决赋权有向图或者无向图的单源最短路径问题,算法最终得到一个最短路径
阅读全文
摘要:/*****************************普里姆(Prim)算法***************************/ /* 此为无向图 Prim算法思想很简单,依托临接矩阵 就是从顶点0开始,依次比较起始点到下一个点的最短路径,并将其更新 然后以新的点为起始点,再找到该点能够到
阅读全文
摘要:1 #include "000库函数.h" 2 //无向图 3 4 #define MAXSIZE 9 /* 存储空间初始分配量 */ 5 #define MAXEDGE 15 6 #define MAXVEX 9 7 #define INFINITY 65535 8 9 typedef int Status; /* Status是函数的类型,其值是...
阅读全文
摘要:1 #include "000库函数.h" 2 //无向图 3 4 typedef char VertexType; /* 顶点类型应由用户定义 */ 5 typedef int EdgeType; /* 边上的权值类型应由用户定义 */ 6 7 #define MAXSIZE 9 /* 存储空间初始分配量 */ 8 #define MAXEDGE 15 ...
阅读全文