Advertisement
Guest User

Untitled

a guest
Sep 30th, 2016
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. tree -> leaf
  2.  
  3. tree -> (tree tree)
  4.  
  5. leaf -> integer
  6.  
  7. using namespace std;
  8.  
  9. int main()
  10. {
  11. string str,st;
  12.  
  13. int index = 0,k=0,i=0;
  14. double s=0,res=0;
  15. res = 0;
  16. char chr;
  17. getline(cin,str);
  18.  
  19. while (index < str.length())
  20. {
  21. chr = str[index];
  22.  
  23. if ((chr == '1') || (chr == '2') || (chr == '3') || (chr == '4') || (chr == '5') || (chr == '6') || (chr == '7') || (chr == '8') || (chr == '9') || (chr == '10') )
  24. {
  25. st = chr;
  26. k = atoi(st.c_str()); cout << "k=" << k << endl;
  27. res = res + k*pow(0.5, s); cout << "s=" << s << endl;
  28. }
  29.  
  30. if (chr == '(')
  31. {
  32. s = s+1 ;
  33.  
  34. }
  35. if (chr == ')')
  36. {
  37. s = s-1;
  38.  
  39. }
  40. cout << "ravn" << res<<endl;
  41.  
  42. index++;
  43. }
  44. cout << "ravn" << res;
  45. system("pause");
  46. }
  47.  
  48. struct tree
  49. {
  50. int value;
  51. tree* left;
  52. tree* right;
  53. };
  54.  
  55. /
  56. / 3
  57. 1 2
  58.  
  59. tree* root = new tree();
  60. // правое поддерево - лист
  61. tree* r = new tree();
  62. r->value = 3;
  63. root->right = r;
  64. // левое поддерево содержит два подподдерева
  65. tree* l = new tree();
  66. tree* ll = new tree();
  67. ll->value = 1;
  68. tree* lr = new tree();
  69. lr->value = 2;
  70. l->left = ll;
  71. l->right = lr;
  72. root->left = l;
  73.  
  74. int numberofleaves(tree* t)
  75. {
  76. if (t->left == nullptr && t->right == nullptr) // лист
  77. return 1;
  78. else
  79. return numberofleaves(t->left) + numberofleaves(t->right);
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement