mortified_penguin

huff_tree.cpp

Dec 29th, 2012
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.57 KB | None | 0 0
  1. #include "tree.hpp"
  2.  
  3. tree::tree(const std::map<char, int> histo)
  4. {
  5.    for (auto it = histo.begin(); it != histo.end(); ++it)
  6.       leaves.push(new leaf(it->first, it->second));
  7.    create_tree();
  8. }
  9.  
  10. tree::~tree()
  11. {
  12.    delete root;
  13. }
  14.  
  15.  
  16. void tree::create_tree()
  17. {
  18.    node *right = leaves.top();   leaves.pop();
  19.    node *left = leaves.top();    leaves.pop();
  20.    branch *parent = new branch(left, right);
  21.    leaves.push(parent);
  22.  
  23.    if (leaves.size() < 2)
  24.       root = parent;
  25.    else
  26.       create_tree();
  27. }
  28.  
  29. node* tree::rootnode() const
  30. {
  31.    return root;
  32. }
Advertisement
Add Comment
Please, Sign In to add comment