Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Stack overflow https://www.cyberforum.ru/ cpp-beginners/ thread41692.html
Написал #include "stdafx.h" #include <iostream> using namespace std; #include <math.h> #include <iomanip> #include <vector>...
Перегрузка << и >> C++
ачал изучать перегрузку ф-ций. Вот код: #include <iostream.h> class PhoneNumber { friend ostream &operator<<(ostream &, const PhoneNumber &); friend istream &operator<<(istream &, PhoneNumber...
C++ Математические методы решения
Здравсвуйтк программеры! Сейчас сдаю предмет "Математические методы исследования операций". Сделал 1 лаб. работу. Столкнулся с проблеммой во 2-ой лабораторной. Нужно сдавать через 2 дня. Помогите...
C++ Составить программу, выдающую справку о номерах рейсов самолётов Очень нужна помощь по решению этих задачек... Помогите пожалуйста, если это вообще возможно... 1. Сгенерировать последовательность 100 случайных чисел х(i) с равномерным законом распределения в... https://www.cyberforum.ru/ cpp-beginners/ thread41669.html
C++ Вывод последовательности чисел (цикл с параметром) https://www.cyberforum.ru/ cpp-beginners/ thread41663.html
1)Вывод последовательности чисел (цикл с параметром) a) Вывести «столбиком» значения: cos2,1 cos2,2 cos2,3 ... cos2,8 2)Цифры числа (цикл с условием) a) Дано натуральное число. Определить ...
C++ Симметричная квадратная матрица
"Симметричная квадратная матрица А порядка n задана последовательностью n(n+1)/2 чисел, аналогично правой треугольной матрице. Кроме этой последовательности дан вектор b с n элементами. Найти вектор...
составить программу поиска двух строк C++
Дана числовая таблица С размером N*N. Составить программу поиска двух строк по следующему алгоритму : одной - с минимальным значением среднего арифметического (SR), другой - с максимальным значением...
C++ перемещение в конец столбец в квадрвтной таблице В квадратной таблице В размером (N,N) переместить в конец столбец , у которого количество повторений элемента чаще других встречающегося максимально по сравнению с другими столбцами.Таблицу выдать на... https://www.cyberforum.ru/ cpp-beginners/ thread41654.html
C++ Преобразовать массив так, чтобы между 0 ограничивающими первый отрезок, оказались элементы второго отрезка https://www.cyberforum.ru/ cpp-beginners/ thread41653.html
"В последовательности А из N элементов каждую группу из рядом стоящих нулей заменить одним нулем . Среди отрезков последовательности , заключенных между парами оставшихся нулей , найти два: с...
C++ Для матрицы а(n, n) найти обратную матрицу Помогите пожалуйста с решением этих задач, а то я уже не знаю что с ними делать.... Задача 1 Для матрицы а(n, n) найти обратную матрицу. Вывести на печать нижнюю треугольную матрицу в... https://www.cyberforum.ru/ cpp-beginners/ thread41645.html
0 / 0 / 0
Регистрация: 23.06.2009
Сообщений: 6
0

Клон бинарного дерева

23.06.2009, 20:15. Просмотров 711. Ответов 0
Метки (Все метки)

Помогите пожалуйста создать копию дерева) извините, если уже такая тема здесь была...не могу найти...заранее спасибо) вот программа:
#include <conio.h>
#include <iostream.h>
#include <stdlib.h>

struct node
{ int Key;
int Count;
node *Left;
node *Right;};

void Poisk (int x, node **p)
{ if (*p==0)
{ *p = new(node);
(**p).Key = x;
(**p).Count = 1;
(**p).Left = (**p).Right = 0;
}
else if (x<(**p).Key)
Poisk (x,&((**p).Left));
else if (x>(**p).Key)
Poisk (x,&((**p).Right));
else (**p).Count = (**p).Count + 1;}


void BuildTree (node **Tree){
int el;
*Tree = 0;
cout<<"Enter keys of tree tops:\n";
cin>>el;
while (el!=0)
{ Poisk (el,Tree); cin>>el;}
}


void PrintTree (node **Tree)
{ cout<<"\n"<<(**Tree).Key;
if ((**Tree).Left!=0)
PrintTree (&(**Tree).Left);
if ((**Tree).Right!=0)
PrintTree (&(**Tree).Right);}

void Klone (node **Tree, node **nTree)
{ (**nTree).Key=(**Tree).Key;
(**nTree).Left=(**Tree).Left;
(**nTree).Right=(**Tree).Right;
(**nTree).Count=(**Tree).Count;
if (&(**Tree).Left!=0)
Klone (&(**Tree).Left, &(**nTree).Left);
if (&(**Tree).Right!=0)
Klone (&(**Tree).Right, &(**nTree).Right);
}

int main ( ) {
node **T1;
node **T2;
*T2=0;
BuildTree (T1);
cout<<"\nPress any key to print tree";
getch();
PrintTree (T1);
Klone (T1, T2);
cout<<"\nPress any key to print new tree";
getch();
PrintTree (T2);
getch ( );
return 0;}

Вернуться к обсуждению:
Клон бинарного дерева
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.06.2009, 20:15
Готовые ответы и решения:

Запись бинарного дерева в файл и восстановление из него этого дерева
Задача такая: есть бинарное дерево. Каждый элемент дерева содержит 3 указателя - 1 указатель на...

Написать шаблон бинарного дерева с функцией распечатки дерева
Не понимаю, что от меня хотят. Дано такое задание: Написать шаблон бинарного дерева с функцией...

Построение бинарного дерева на основе не бинарного
В лабораторной работе есть такое задание: Создайте процедуру построения бинарного дерева на основе...

Создание бинарного дерева из бинарного файла
struct Bin { string name; string city; int players; int score; }; void...

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