Advertisement
Guest User

Untitled

a guest
Dec 11th, 2018
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.07 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. using namespace std;
  4. struct node {
  5. char op;
  6. node *l, *r;
  7. };
  8. node *BuildTree( char s[], int & pos ) {
  9. node * n = new node;
  10. n->op = s[pos];pos++;
  11. if ( ( n->op=='+' )|| ( n->op=='-' )||( n->op=='*' )||( n->op=='/' )) {
  12. n->l = BuildTree( s, pos );
  13. n->r = BuildTree( s, pos );
  14. }
  15. else
  16. n->r = n->l = NULL;
  17. return n;
  18. }
  19. void PrintTree(node * t, int h) {
  20. if (t==NULL) return;
  21. PrintTree(t->l,h+1);
  22. for(int i=0;i<h;i++) cout<<" ";
  23. cout << t->op << endl;
  24. PrintTree(t->r,h+1);
  25. }
  26. int HeightOfTree(BuildTree * node)
  27. {
  28. if(node == 0)
  29. return 0;
  30. int l, r;
  31. if (node->lChild != NULL) {
  32. l = HeightOfTree(node->lChild);
  33. }else
  34. l = -1;
  35. if (node->rightChild != NULL) {
  36. r = HeightOfTree(node->rChild);
  37. }else
  38. r = -1;
  39. int max = l > r ? l : r;
  40. return max+1;
  41.  
  42. }
  43. int main() {
  44. char s[20] = "";
  45. cout << "Input s: ";
  46. cin >> s;
  47. int pos = 0;
  48. node *root = BuildTree (s, pos);
  49. PrintTree (root, 0);
  50. int HeightOfTree(BuildTree * node)
  51.  
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement