Data Structure
iteye_14216
这个作者很懒,什么都没留下…
展开
-
实用类之一-----最小堆的实现
最小(大)堆是比较常用的数据结构,是实现优先队列和堆排序的基础,也可以实现例如霍夫曼编码,贪心算法等,具有很好的时间复杂性.[code]MinHeap.h文件templateclass MinHeap{ public: MinHeap(T a[],int n); MinHeap(int ms); ~MinHeap(); bool Insert(c...2007-04-09 23:21:54 · 113 阅读 · 0 评论 -
实用类之二-----最大堆的实现
最小(大)堆是比较常用的数据结构,是实现优先队列和堆排序的基础,也可以实现例如霍夫曼编码,贪心算法等,具有很好的时间复杂性.[code]templateclass MaxHeap{ public: MaxHeap(T a[],int n); MaxHeap(int ms); ~MaxHeap(); bool Insert(const T &x);//插入一个...2007-04-09 23:24:01 · 119 阅读 · 0 评论 -
最小堆应用---用最小堆实现huffman树
最小堆应用---用最小堆实现huffman树,huffman是形成huffman编码的基础.[code]#include"MinHeap.h"template class HuffmanTree;template class TreeNode{ friend class HuffmanTree; private: T data; TreeNode *le...2007-04-09 23:27:36 · 334 阅读 · 1 评论 -
最小(大)堆应用---堆排序
堆排序的时间复杂性为nlog(n),空间复杂度为o(1),为比较排序的下界,因此具有非常好的性能,使用堆,也很容易实现堆排序.[code]#include#include"MinHeap.h"using namespace std;templatevoid HeapSort(T a[],int n){ T temp; MinHeap *m_heap = new ...2007-04-09 23:29:37 · 119 阅读 · 0 评论 -
常用类之四---并查集(Union-Find Sets)
并查集为解决等价类问题提供了一个高效快速的数据结构,在许多涉及到等价类的算法中,他都扮演着改进算法中使用的数据机构的角色,他对提高算法的效率是可见一斑,例如在带有限期的作业问题中,在求最小生成树Kruskal算法都可以使用并查集高效的实现.[code]const int DefaultSize = 20;class UFSets{public: UFSets(int s...2007-04-09 23:31:08 · 128 阅读 · 0 评论 -
十大常用数据结构
一、栈: 1、后缀表达式的求值;2、中缀到后缀表达式的转换;3、深度优先搜索的非递归实现;4、动态规划的优化:用于维护一个凸序列,便于二分查找,如LIS问题的O(nlgn)算法。二、队列:1、树的层序遍历;2、广度优先搜索;3、Bellman-Ford算法的SPFA实现;4、网络流中FF算法的Edmonds-Karp实现,以及Preflow算法的队列优化...原创 2009-06-07 19:35:41 · 366 阅读 · 0 评论