Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- tree -> leaf
- tree -> (tree tree)
- leaf -> integer
- using namespace std;
- int main()
- {
- string str,st;
- int index = 0,k=0,i=0;
- double s=0,res=0;
- res = 0;
- char chr;
- getline(cin,str);
- while (index < str.length())
- {
- chr = str[index];
- if ((chr == '1') || (chr == '2') || (chr == '3') || (chr == '4') || (chr == '5') || (chr == '6') || (chr == '7') || (chr == '8') || (chr == '9') || (chr == '10') )
- {
- st = chr;
- k = atoi(st.c_str()); cout << "k=" << k << endl;
- res = res + k*pow(0.5, s); cout << "s=" << s << endl;
- }
- if (chr == '(')
- {
- s = s+1 ;
- }
- if (chr == ')')
- {
- s = s-1;
- }
- cout << "ravn" << res<<endl;
- index++;
- }
- cout << "ravn" << res;
- system("pause");
- }
- struct tree
- {
- int value;
- tree* left;
- tree* right;
- };
- /
- / 3
- 1 2
- tree* root = new tree();
- // правое поддерево - лист
- tree* r = new tree();
- r->value = 3;
- root->right = r;
- // левое поддерево содержит два подподдерева
- tree* l = new tree();
- tree* ll = new tree();
- ll->value = 1;
- tree* lr = new tree();
- lr->value = 2;
- l->left = ll;
- l->right = lr;
- root->left = l;
- int numberofleaves(tree* t)
- {
- if (t->left == nullptr && t->right == nullptr) // лист
- return 1;
- else
- return numberofleaves(t->left) + numberofleaves(t->right);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement