Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * File: expTree.h
- * Author: carlos
- *
- * Created on October 4, 2013, 2:46 PM
- */
- #ifndef EXPTREE_H
- #define EXPTREE_H
- #include "linkedList.h"
- #include "StacknQeuenTree.h"
- class expTree {
- //Private Variables:
- qeueClass seed;
- node **swap;
- node* root;
- //Private Methods:
- void traverse(node* p) {
- if (p != NULL) {
- traverse(p->left);
- p->print_data();
- std::cout << std::endl;
- traverse(p->right);
- }
- }
- void scan() {
- int i = 0;
- while (!seed.empty()) {
- node *element = new node(seed.pop());
- if (element->isOperator()) {
- element->clearPtrs();
- //pop
- i--;
- element->right = swap[i];
- //pop
- i--;
- element->left = swap[i];
- //push
- swap[i] = element;
- i++;
- } else {
- //push
- element->clearPtrs();
- swap[i] = element;
- i++;
- }
- }
- };
- public:
- expTree(qeueClass postfixSeed) {
- seed = postfixSeed; //PostFix Expression
- swap = new node*[seed.size()]; //Stack used to construct the tree
- scan();
- };
- void printTree() {
- root = swap[0];
- traverse(root);
- }
- ~expTree() {
- //delete [] swap;
- }
- };
- #endif /* EXPTREE_H */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement