Advertisement
carlos1993

Exp Constructor

Oct 10th, 2013
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.50 KB | None | 0 0
  1. /*
  2.  * File:   expTree.h
  3.  * Author: carlos
  4.  *
  5.  * Created on October 4, 2013, 2:46 PM
  6.  */
  7.  
  8. #ifndef EXPTREE_H
  9. #define EXPTREE_H
  10. #include "linkedList.h"
  11. #include "StacknQeuenTree.h"
  12.  
  13. class expTree {
  14.     //Private Variables:
  15.  
  16.     qeueClass seed;
  17.     node **swap;
  18.     node* root;
  19.  
  20.     //Private Methods:
  21.  
  22.     void traverse(node* p) {
  23.         if (p != NULL) {
  24.             traverse(p->left);
  25.             p->print_data();
  26.             std::cout << std::endl;
  27.             traverse(p->right);
  28.         }
  29.     }
  30.  
  31.     void scan() {
  32.         int i = 0;
  33.         while (!seed.empty()) {
  34.             node *element = new node(seed.pop());
  35.             if (element->isOperator()) {
  36.                 element->clearPtrs();
  37.                 //pop
  38.                 i--;
  39.                 element->right = swap[i];
  40.                 //pop
  41.                 i--;
  42.                 element->left = swap[i];
  43.                 //push
  44.                 swap[i] = element;
  45.                 i++;
  46.  
  47.             } else {
  48.                 //push
  49.                 element->clearPtrs();
  50.                 swap[i] = element;
  51.                 i++;
  52.             }
  53.         }
  54.     };
  55.  
  56. public:
  57.  
  58.     expTree(qeueClass postfixSeed) {
  59.         seed = postfixSeed; //PostFix Expression
  60.         swap = new node*[seed.size()]; //Stack used to construct the tree
  61.         scan();
  62.     };
  63.  
  64.     void printTree() {
  65.         root = swap[0];
  66.         traverse(root);
  67.     }
  68.  
  69.     ~expTree() {
  70.         //delete [] swap;
  71.     }
  72. };
  73.  
  74. #endif  /* EXPTREE_H */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement