Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- using namespace std;
- struct node {
- char op;
- node *l, *r;
- };
- node *BuildTree( char s[], int & pos ) {
- node * n = new node;
- n->op = s[pos];pos++;
- if ( ( n->op=='+' )|| ( n->op=='-' )||( n->op=='*' )||( n->op=='/' )) {
- n->l = BuildTree( s, pos );
- n->r = BuildTree( s, pos );
- }
- else
- n->r = n->l = NULL;
- return n;
- }
- void PrintTree(node * t, int h) {
- if (t==NULL) return;
- PrintTree(t->l,h+1);
- for(int i=0;i<h;i++) cout<<" ";
- cout << t->op << endl;
- PrintTree(t->r,h+1);
- }
- int HeightOfTree(BuildTree * node)
- {
- if(node == 0)
- return 0;
- int l, r;
- if (node->lChild != NULL) {
- l = HeightOfTree(node->lChild);
- }else
- l = -1;
- if (node->rightChild != NULL) {
- r = HeightOfTree(node->rChild);
- }else
- r = -1;
- int max = l > r ? l : r;
- return max+1;
- }
- int main() {
- char s[20] = "";
- cout << "Input s: ";
- cin >> s;
- int pos = 0;
- node *root = BuildTree (s, pos);
- PrintTree (root, 0);
- int HeightOfTree(BuildTree * node)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement