您好,欢迎光临本网站![请登录][注册会员]  
文件名称: Binomial heaps 的实现和分析
  所属分类: C/C++
  开发工具:
  文件大小: 883kb
  下载次数: 0
  上传时间: 2009-07-03
  提 供 者: liangli*******
 详细说明: 1、抽象数据类型定义如下: 本程序主要定义了两个类,一个用于创建节点,另一个用于创建二项堆。 class BinomialHeapNode { public: int key; //节点的关键字的值 int degree; //节点的度 BinomialHeapNode* sibling; //节点的右兄弟节点 BinomialHeapNode* child; //节点的最最孩子节点 BinomialHeapNode* father; / /节点的双亲节点 BinomialHeapNode(int newkey) ; //构造函数,以关键字创建节点 BinomialHeapNode(); //重载构造函数,默认关键字为0 }; class BinomialHeap { public: typedef BinomialHeapNode node_t; private: static BinomialHeap heapMerge(BinomialHeap& heapA, BinomialHeap& heapB) ; //将两个二项堆按照根的度的递增顺序构成一个新的二项堆 static void nodeLink(node_t* child, node_t* father) ; //将两个节点连接成二项树 public: node_t* head; //二项堆的头节点 BinomialHeap(); //构造函数,头结点为0 { head = 0 } BinomialHeap(node_t& node) //构造函数,以一个节点进行构造 { head = &node; } BinomialHeap(node_t* node) //构造函数,以一个节点进行构造 { head = node; } BinomialHeap(const BinomialHeap& src) //构造函数,以一个二项堆进行构造 { head = src.head; } inline void insertNode(node_t& node) ; //在堆中插入一个节点 void insertNode(node_t* node) ; //在堆中插入一个节点 node_t* Find_Min(); //查找关键字值最小的节点 node_t* Extract_Min(); //查找并删除关键字值最小的节点 static BinomialHeap heapUnion(BinomialHeap& heapA, BinomialHeap& heapB) ; //合并两个二项堆 node_t*Findnode(int key) ; //查找关键字为key的节点 inline void swapkey(node_t* source,node_t*target ) ; //交换两个节点的关键字的值 void decreaseKey(int key,int newkey) ; //减小关键字为key的节点的值为newkey void traverse(); //遍历二项堆 void DeleteNode(int key) ; //删除关键字为key的节点 }; ...展开收缩
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 相关搜索: 二项堆 二项树 Binomial heaps
 输入关键字,在本站1000多万海量源码库中尽情搜索: