Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- struct node
- {
- char element;
- node *less, *more;
- };
- node* create() {
- node *tree;
- tree = new node;
- tree->more = NULL;
- tree->less = NULL;
- tree->element = '\0';
- return tree;
- }
- void Add(char el, node *tree) {
- /*
- if (tree == NULL) {
- cout << "NULL - processing." << endl;
- tree = create();
- tree->element = el;
- cout << tree->element << " " << "Ready." << endl;
- }
- else {
- cout << "Not NULL."<<endl;
- if (el>tree->element) Add(el, tree->more);
- else Add(el, tree->less);
- cout << el;
- }
- */
- if(tree->element == '\0')
- tree->element = el;
- if(el>tree->element){
- if(tree->more == NULL)
- tree->more = create();
- Add(el,tree->more);
- }
- if(el<tree->element){
- if(tree->more == NULL)
- tree->more = create();
- Add(el,tree->less);
- }
- }
- void Print(node *tree, int u)
- {
- /*
- if (tree == NULL) {
- cout << "Pusto" << endl;
- return; //Если дерево пустое - выходим
- }
- else
- {
- cout << "Ne Pusto!" << endl;
- Print(tree->less, ++u);//С помощью рекурсивного посещаем левое поддерево
- for (int i = 0; i<u; ++i) cout << "|";
- cout << tree->element << endl; //И показываем элемент
- u--;
- }
- Print(tree->more, ++u); //С помощью рекурсии посещаем правое поддерево
- */
- if(tree->less != NULL)
- Print(tree->less, 0);
- if(tree->more != NULL)
- Print(tree->more, 0);
- cout << tree->element << endl;
- }
- int main()
- {
- node *head1;
- int n; //Количество элементов
- char s; //Число, передаваемое в дерево
- cout << "введите количество элементов ";
- cin >> n; //Вводим количество элементов
- head1 = create();
- cout << head1 << endl;
- for (int i = 0; i<n; ++i)
- {
- cout << "ведите число ";
- cin >> s; //Считываем элемент за элементом
- Add(s, head1); //И каждый кладем в дерево
- }
- cout << "You tree" << endl;
- cout << head1 << endl;
- Print(head1, 0);
- cout << head1 << endl;
- cin >> n;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement