fuliangliang的Blog

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。

用户操作
[即时聊天] [发私信] [加为好友]
fuliangID:fuliangliang
65445次访问,排名1598好友1人,关注者3
fuliangliang的文章
原创 100 篇
翻译 0 篇
转载 25 篇
评论 29 篇
fuliang的公告

我的联系方式:20542606

Email:fuliangliang@gmail.com


最近评论
topgunqq:条理清楚,简单易学.比网上其他例子要好一些.至少按照楼主写的过程,我这个初学者实验成功了!
marshluca:恭喜~~
请问有没rails 做的项目,比方blog?
marshluca@gmail.com
marshluca:恭喜~~
请问有没rails 做的项目,比方blog?
marshluca@gmail.com
chucai:写的非常的好,仔细的拜读了。思路很清晰。考虑的问题也比较全面。
tbsc3:我也遇到了这个问题,如果配1 M就有用,大于2M就还是默认的 不知道你有没有解决呀,教教我
文章分类
收藏
    相册
    净月潭一日游
    页面图片
    日历
    文章收藏
    我的JavaEye博客
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 最小堆应用---用最小堆实现huffman树收藏

    新一篇: 最小(大)堆应用---堆排序 | 旧一篇: 常用类之三----最小堆实现优先队列

    #include"MinHeap.h"

    template<class T> class HuffmanTree;
    template<class T>
    class TreeNode{
     friend class HuffmanTree<T>;
     private:
      T data;
      TreeNode<T> *left,*right;
     public:
      TreeNode(T value){
       data = value;
       left = right = NULL;
      }
      TreeNode(){
       left = right = NULL;
      }
      bool operator > (const TreeNode &node){
        return data > node.data;
      }
      bool operator < (const TreeNode &node){
        return data < node.data;
      }
      bool operator == (const TreeNode &node){
        return data == node.data;
      }
         bool operator >= (const TreeNode &node){
        return data >= node.data;
      }
    };

    template <class T>
    class HuffmanTree{
     public:
      HuffmanTree();
      HuffmanTree(T value[],int n);
     protected:
      TreeNode<T> *JoinTree(TreeNode<T> &node1,TreeNode<T> &node2);
      TreeNode<T> *root;
    };

    template<class T>
    HuffmanTree<T>::HuffmanTree():root(NULL){
    }

    template<class T>
    HuffmanTree<T>::HuffmanTree(T value[],int n):root(NULL){
      TreeNode<T> *nodes = new TreeNode<T>[n];
      TreeNode<T> leftNode,rightNode;
      int i = 0;
      for(i = 0; i < n; i++){
        nodes[i] = TreeNode<T>(value[i]);
      }
      MinHeap< TreeNode<T> > *m_heap = new MinHeap< TreeNode<T> >(nodes,n);
     
      for(i = 0; i < n-1; i++){
       m_heap->RemoveMin(leftNode);
       m_heap->RemoveMin(rightNode);
       root = JoinTree(leftNode,rightNode);
       m_heap->Insert(*root);
      }
    }

    template<class T>
    TreeNode<T> *HuffmanTree<T>::JoinTree(TreeNode<T> &node1,TreeNode<T> &node2){
      TreeNode<T> *r = new TreeNode<T>;
      r->left = &node1;
      r->right = &node2;
      r->data = node1.data + node2.data;
      return r;
    }

    发表于 @ 2006年05月29日 23:29:00|评论(loading...)|编辑

    新一篇: 最小(大)堆应用---堆排序 | 旧一篇: 常用类之三----最小堆实现优先队列

    评论:没有评论。

    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © fuliang