Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "Tree.h"
- int main (void)
- {
- Tree_node *Top;
- string Simbol;//символ
- ifstream file("Base.txt");
- getline (file, Simbol);
- getline (file, Simbol);
- Top = Construction_tree(Simbol, file);
- User New_user(Top);
- New_user.Parse("sooqa");
- file.close();
- ofstream Out_file("Base.txt");
- Off_base(Top, Out_file);
- Out_file.close();
- Cleaner(Top);
- return 0;
- }
- void Cleaner (Tree_node * Top_node)
- {
- for (int n = 0; n < (Top_node -> Down.size()); ++n)
- {
- Cleaner (Top_node -> Down[n]);
- }
- delete Top_node;
- }
- Tree_node * Construction_tree(string Node, ifstream &file)
- {
- string Simbol_;
- Tree_node *Top_node = new Tree_node;
- Top_node->Name_of_node = Node;
- Top_node->IsAHum_ = 2;
- getline (file, Simbol_);
- if (Simbol_ == "{")
- {
- Top_node -> IsAHum_ = 0 ;
- getline (file, Simbol_);
- while (Simbol_ != "}" && file)
- {
- Top_node -> Down.insert(Top_node -> Down.end(), Construction_tree(Simbol_, file));
- getline (file, Simbol_);
- }
- }
- else if (Simbol_ == "[")
- {
- getline (file, Simbol_);
- while (Simbol_ != "]")
- {
- string Name_of_work;
- Name_of_work = Simbol_.substr(0,Simbol_.find("~"));
- Simbol_ = Simbol_.substr(Simbol_.find("~")+1);
- Top_node->Work[Name_of_work] = Simbol_;
- getline (file, Simbol_);
- }
- Top_node->IsAHum_ = 1;
- }
- return Top_node;
- }
- void Off_base(Tree_node * Top_node, ofstream &file)
- {
- int S = Top_node -> IsAHum_;
- cout <<"~~"<< S;
- if (Top_node -> IsAHum_ == 0)
- {
- file<<"\n" << Top_node -> Name_of_node << "\n{";
- cout <<"\n"<< Top_node -> Name_of_node << "\n{";
- for( int n = 0; Top_node -> Down.size(); ++n)
- {
- Off_base (Top_node -> Down [n], file);
- }
- file << "}";
- cout << "}";
- }
- else if(Top_node -> IsAHum_ == 1)
- {
- file << "\n"<<Top_node -> Name_of_node << "\n[\n";
- cout <<"\n"<< Top_node -> Name_of_node << "\n[\n";
- for(map <string , string>::iterator i = Top_node -> Work.begin(); i != Top_node -> Work.end(); ++i)
- {
- file << i -> first <<"~" << i -> second <<"\n";
- cout << i -> first << "~"<< i -> second << "\n";
- }
- file << "]";
- cout << "]";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement