Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <string>
- #include <fstream>
- #include <iostream>
- #include <deque>
- #include <iomanip>
- #include <queue> // std::queue
- #include <iostream>
- #include <fstream>
- #include <string>
- #include <sstream>
- #include <vector>
- #include "BinaryTree.h"
- ;using namespace std;
- //BinaryTree::BinaryTree(){ //Конструктор
- //}
- void BinaryTree::printLevelOrder(BinaryTree *root) {
- if (!root) return;
- queue<BinaryTree*> nodesQueue;
- int nodesInCurrentLevel = 1;
- int nodesInNextLevel = 0;
- nodesQueue.push(root);
- while (!nodesQueue.empty()) {
- BinaryTree *currNode = nodesQueue.front();
- nodesQueue.pop();
- nodesInCurrentLevel--;
- if (currNode) {
- cout << currNode->data << " ";
- nodesQueue.push(currNode->left);
- nodesQueue.push(currNode->right);
- nodesInNextLevel += 2;
- }
- if (nodesInCurrentLevel == 0) {
- cout << endl;
- nodesInCurrentLevel = nodesInNextLevel;
- nodesInNextLevel = 0;
- }
- }
- }
- void BinaryTree::add_node(BinaryTree *tree, vector<int> str1,BinaryTree *child){
- int marker=0;
- char position=' ';
- for(int i=0;i<str1.size();i++){
- if(tree->data==str1[i]){
- i++;
- int j=i;
- if((tree->left!=NULL)||(tree->right!=NULL)){
- if ((tree->right->data!=NULL)){ if(str1[j]==tree->right->data){ child=tree->right; position='r';marker=1; }}
- else if((tree->left->data!=NULL)){if(str1[j]==tree->left->data){child=tree->left; position='l';marker=1;}}
- }
- }
- // if ((tree->right!=NULL)||(tree->left!=NULL)){
- // if(tree->right!=NULL){if(tree->right->data==str1[i]){child=tree->right; position='r';}}
- // else{if(tree->left!=NULL){if(tree->left->data==str1[i]){child=tree->left; position='l';}}}
- // } //else{
- // if(marker==0){
- //CODE WRITTEN AT RANDOM
- if((tree->right==NULL)||(tree->left==NULL)){
- if (tree->right==NULL){child=tree->right; position='r';}
- else if ((tree->left==NULL)){ child=tree->left; position='l';}
- } else {
- }
- //if(tree->right!=NULL){if(tree->right->data==str1[i]){child=tree->right; position='r';i++;}else{child=tree->left; position='l';}}
- //else{if(tree->left->data==str1[i]){child=tree->left; position='l';i++;}else{child=tree->right; position='r';}}
- //BinaryTree *parent= new BinaryTree;
- if(child==NULL){
- BinaryTree *child= new BinaryTree;
- child->data=str1[i];
- child->left=NULL;
- child->right=NULL;
- if((position=='l')||(position=='r')){
- if(position=='l') tree->left=child;
- else tree->right=child;
- }
- //tree->right= new BinaryTree;
- //tree->left= new BinaryTree;
- cout<<endl;
- cout<<child->data<<endl;
- tree=child;
- }else{
- // tree=child;
- }
- //}// else pervyi if
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement