Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Lipok
2 / 2 / 0
Регистрация: 27.05.2013
Сообщений: 15
#1

Написать функцию удаления узлов из бинарного дерева - C++

20.04.2014, 19:51. Просмотров 196. Ответов 0
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#include <iostream>
#include <conio.h>
using namespace std;
const int sz=80; 
struct file{
    
    char FI[sz];
    int data;
    int mes;
 
};
struct Node //Звено дерева
{
   file x; //То, что записываем в дерево
   Node *l,*r; //Это указатели на новые звенья
};
 
class Der{
 
public:
    
 
void show(Node *&Tree) //Функция обхода
{
    if (Tree!=NULL) //Пока не встретится пустое звено
    {
       show(Tree->l); //Рекурсивная функция для вывода левого поддерева
       cout<<Tree->x.FI<<endl; //Отображаем корень дерева
       cout<<Tree->x.data<<endl;
       cout<<Tree->x.mes<<endl;
       show(Tree->r); //Рекурсивная функци для вывода правого поддерева
    }
}
 
void add_node(file x,Node *&MyTree) //Фукция добавления звена в дерево
{
    if (NULL==MyTree)  //То, о чем я в самом начале писал. Если дерева нет, то ложим семечко
    {
        MyTree=new Node; //Выделяем память под звено дерева
        MyTree->x=x; //Записываем данные в звено
        MyTree->l=MyTree->r=NULL; //Подзвенья инициализируем пустотой во избежание ошибок
    }
 
    if (x.data<MyTree->x.data)   //Если нововведенный элемент x меньше чем элемент x из семечка дерева, уходим влево
                      {
                          if (MyTree->l!=NULL) add_node(x,MyTree->l); //При помощи рекурсии заталкиваем элемент на свободный участок
                          else //Если элемент получил свой участок, то
                          {
                              MyTree->l=new Node;  //Выделяем память левому подзвену. Именно подзвену, а не просто звену
                              MyTree->l->l=MyTree->l->r=NULL; //У левого подзвена будут свои левое и правое подзвенья, инициализируем их пустотой
                              MyTree->l->x=x; //Записываем в левое подзвено записываемый элемент 
                          }
                      }
                 
    if (x.data>MyTree->x.data)   //Если нововведенный элемент x больше чем элемент x из семечка дерева, уходим вправо
                      {
                          if (MyTree->r!=NULL) add_node(x,MyTree->r); //При помощи рекурсии заталкиваем элемент на свободный участок
                          else //Если элемент получил свой участок, то
                          {
                              MyTree->r=new Node;  //Выделяем память правому подзвену. Именно подзвену, а не просто звену
                              MyTree->r->l=MyTree->r->r=NULL; //У правого подзвена будут свои левое и правое подзвенья, инициализируем их пустотой
                              MyTree->r->x=x; //Записываем в правое подзвено записываемый элемент 
                          }
                      }
        
}
void del(char txt){
 
}
};
 
int main()
{
   Node *Tree=NULL;  //Создаю указатель, тип которого = звено дерева и инициализирую его пустотой
  int i;
  const int n=5;
  file apart[n];
 
     for(i=0;i<n;i++)
     {
cout<<"Vvedite file :";
cin>>apart[i].FI;
cout<<"Vvedite data :";
cin>>apart[i].data;
cout<<"Vvedite mes :";
cin>>apart[i].mes;
     }
  cout<<endl;
 
   Der ob;
   
      
      for (int i=0;i<n;i++) ob.add_node(apart[i],Tree); 
      ob.show(Tree); //Вывод на экран дерева. или просто обход дерева
 
      cin.get();
 
   return 0;
}
file - вводить название файла например (test1.txt)
data - дата последнего обращения
mes- месяц

нужна функция удаления из бинарного дерева всех файлов с расширением .txt
если не сложно помогите плиз
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2014, 19:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Написать функцию удаления узлов из бинарного дерева (C++):

Создание бинарного дерева и ограничение на количество узлов в ней - C++
В задании по созданию бинарного дерева есть условие на то, что узлов в дереве должно быть не больше 10. Пробую поставить такое ограничение...

Удаление узлов из бинарного дерева до даты, введенной с клавиатуры - C++
В общем, такой вопрос. Используя классы, создать упорядоченное бинарное дерево, которое описывает справочник файлов в файловой системе....

Найти среднее арифметическое узлов бинарного дерева целых чисел - C++
Помогите решить. Надо срочно!!! Создать бинарное дерево целых чисел. Вывести на экран значение узлов и их среднее арифметическое

Дополнить класс, включив метод подсчета числа узлов заданного бинарного дерева - C++
Изучить приведенный пример реализации класса «Дерево двоичного поиска», для которого реализованы следующие схемы обхода бинарного дерева: ...

Удаления узла из бинарного дерева поиска - C++
Уже довольно много времени убил на эту задачу, теорию понимаю, на практике реализовать никак не получается. Помогите пожалуйста написать...

Итерационный метод удаления бинарного дерева - C++
Есть бинарное дерево поиска нужно создать итерационный метод удаления дерева. Вот есть функция удаления дерева но при удалении происходит...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.04.2014, 19:51
Привет! Вот еще темы с ответами:

Функция удаления листа (или ветки) бинарного дерева - C++
Здравствуйте программисты! Учусь на первом курсе. Возникли проблемы с разработкой функции удаления ветки листа или корня из дерева. Т.е....

Написать шаблон бинарного дерева с функцией распечатки дерева - C++
Не понимаю, что от меня хотят. Дано такое задание: Написать шаблон бинарного дерева с функцией распечатки дерева *(+(d,e),c) в виде...

Написать сортировку бинарного дерева - C++
Как записать функцию, которая сортирует элементы бинарного дерева по возрастанию?Подскажите пожалуйста

Разработать функцию для удаления вводимых с клавиатуры чисел из бинарного файла - C++
[/OFF Помогите на писать программу по сишке Разработать ф-цию , в которой вводимые с клавиатуры числа удаляются из бинарного файла....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru