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

Деревья - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Использование функций http://www.cyberforum.ru/cpp-beginners/thread1034484.html
Очень нужна помощь. Помогите пожалуйста разобраться. Я уже не представляю что делать, подскажите пожалуйста. Во время запуска программы, вторую функцию не выполняет. Вот суть задания: 1. Формирование, печать и обработку массивов оформить в виде функции. Массивы передавать как параметры функций. 2. Реализовать массивы как псевдодинамические, их размерности передавать как параметры функций. 3....
C++ Сортировка массива с использованием <pthread.h> Доброго дня! Кто может помочь переделать задачу. Данный вариант работает только, когда число потоков является степенью двойки. Нужно сделать, чтобы работало с любым числом потоков. Заранее спасибо! #include <iostream> #include <pthread.h> #include <stdlib.h> http://www.cyberforum.ru/cpp-beginners/thread1034479.html
Посчитать значение уравнения C++
Задача: Найти Y, если Y = X1 + X2 + … + Xn, X = Z^3 - B + A^2 / tg^2Betta . Количество X вводятся пользователем программы. Для каждого X значения Z, B, А, Betta разные (вводятся пользователем программы). #include<conio.h> #include<iostream.h> #include<cmath.h> #define MAX 2
C++ Подсчитать количество простых чисел в последовательности, больших заданного числа М
Всем привет)) помогите разработать программу С++! Тема: Одномерные массивы. Разработать программу на языке программирования согласно Вашему варианту. Дан массив из N целых чисел, где N<=16, каждое число в диапазоне от –32000 до 32000. Массив для каждой задачи должен задаваться в секции объявлений глобальных переменных, например: int A =...
C++ Разработать класс «Циклический список» и методы работы с ним http://www.cyberforum.ru/cpp-beginners/thread1034445.html
нужно срочно написать такую штуку, брат сидит на зачете и скинул задание. Класс «Циклический список». Методы: добавление элемента в список, удаление элемента из списка, отображение всех элементов списка на дисплее. 1. Разработать обобщенный класс по заданию преподавателя. В нем реализовать методы: ввод информации о параметрах и элементах класса; вывод элементов на дисплей; методы...
C++ Почему я не могу создавать темы в разделе фриланс->предложения фрилансеров? Почему? подробнее

Показать сообщение отдельно
intnower
0 / 0 / 0
Регистрация: 12.01.2012
Сообщений: 68
09.12.2013, 21:27     Деревья
Всем добрый день!
Имеется такое задание :
а) вставляет узел с записью Е в дерево, если ранее такой не было;
b) удалить ее, если она уже существует.
Также есть функции, которые добавляют звенья в дерево, обход и т.д.
Помогите, пожалуйста, с заданием. Спасибо.
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
//#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <iostream>
using namespace std;
struct derevo
{
    derevo *left,*rite; //левое и правое поддерево
    int x; 
};
 
/*ФУНКЦИЯ ДОБАВЛЕНИЯ ЗВЕНА В ДЕРЕВО*/
void dobav(int x,derevo *&zveno) //Функция добавления звена в дерево
{
    if (NULL==zveno)  // Если дерева нет, то создаем корень
    {
        zveno=new derevo; //Выделяем память под звено дерева
        zveno->x=x; //Записываем данные в звено
        zveno->left=zveno->rite=NULL; //Подзвенья инициализируем пустотой во избежание ошибок
    }
 
                   if (x<zveno->x)   //Если нововведенный элемент x меньше чем элемент x из корня дерева, уходим влево
                      {
                          if (zveno->left!=NULL) dobav(x,zveno->left); //При помощи рекурсии помещаем элемент на свободный участок
                          else //Если элемент получил свой участок, то
                          {
                              zveno->left=new derevo;  //Выделяем память левому подзвену. Именно подзвену, а не просто звену
                              zveno->left->left=zveno->left->rite=NULL; //У левого подзвена будут свои левое и правое подзвенья, инициализируем их пустотой
                              zveno->left->x=x; //Записываем в левое подзвено записываемый элемент 
                          }
                      }
                 
                    if (x>zveno->x)   //Если нововведенный элемент x больше чем элемент x из корня дерева, уходим вправо
                      {
                          if (zveno->rite!=NULL) dobav(x,zveno->rite); //При помощи рекурсии помещаем элемент на свободный участок
                          else //Если элемент получил свой участок, то
                          {
                              zveno->rite=new derevo;  //Выделяем память правому подзвену. Именно подзвену, а не просто звену
                              zveno->rite->left=zveno->rite->rite=NULL; //У правого подзвена будут свои левое и правое подзвенья, инициализируем их пустотой
                              zveno->rite->x=x; //Записываем в правое подзвено записываемый элемент 
                          }
                      }
        
}
 
/*ОБХОД В ПЯМОМ ПОРЯДКЕ (НИСХОДЯЩИЙ ОБХОД)*/
 void pram_ob (derevo *&svob)
{
    if (NULL==svob)    return;    //Если дерева нет, выходим
   
    printf("%d\n",svob->x); //Посетили узел
    pram_ob (svob->left); //Обошли левое поддерево
    pram_ob (svob->rite); //Обошли правое поддерево 
    
 
}
 
int main ()
{
    int x; //Некоторые данные
    derevo *zveno=NULL; //Указатель на нашу структуру. Инициализируем во избежание ошибок
 
  for (int i=0;i<7;i++) //В дереве будет 7 узлов
  {
      printf("X = "); scanf("%d",&x); //Ввели X с клавиатуры
      dobav(x,zveno); //Добавили X в дерево
  }
 
  pram_ob (zveno); //Обошли дерево и показали его звенья в линейном порядке
  getch();
return 0;}
Добавлено через 1 час 51 минуту

Добавлено через 2 часа 50 минут
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru