Algorithm
fuliangliang
这个作者很懒,什么都没留下…
展开
-
实用类之一-----最小堆的实现
MinHeap.h文件templateclass MinHeap{ public: MinHeap(T a[],int n); MinHeap(int ms); ~MinHeap(); bool Insert(const T &x);//插入一个元素,如果空返回false,否则返回true bool RemoveMin(T &x);//删除最小的元素,如果空返回false,否则原创 2006-05-28 11:01:00 · 1193 阅读 · 0 评论 -
实用类之二-----最大堆的实现
templateclass MaxHeap{ public: MaxHeap(T a[],int n); MaxHeap(int ms); ~MaxHeap(); bool Insert(const T &x);//插入一个元素,如果空返回false,否则返回true bool RemoveMax(T &x);//删除最小的元素,如果空返回false,否则返回true void原创 2006-05-28 11:12:00 · 1004 阅读 · 0 评论 -
常用类之三----最小堆实现优先队列
Priority_Queue.h#include"MinHeap.h"templateclass Priority_Queue{ public: Priority_Queue(); ~Priority_Queue(); void Push(const T &x); T Pop(); bool IsEmpty(); bool IsFull(); private: MinHeap原创 2006-05-28 23:12:00 · 1337 阅读 · 0 评论 -
最小(大)堆应用---堆排序
#include#include"MinHeap.h"using namespace std;templatevoid HeapSort(T a[],int n){ T temp; MinHeap *m_heap = new MinHeap(a,n); for(int i = n-1; i >= 1; i--){//a[0]与a[i]交换,重新调整堆0--->i-1 temp = a原创 2006-05-30 10:19:00 · 1192 阅读 · 0 评论 -
常用类之四---并查集(Union-Find Sets)
const int DefaultSize = 20;class UFSets{public: UFSets(int s = DefaultSize); ~UFSets(); void Union(int root1,int root2); void WeightUnion(int root1,int root2);//基于加权规则的合并操作原创 2006-05-30 11:10:00 · 1379 阅读 · 0 评论