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

Бинарные деревья - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ матрица http://www.cyberforum.ru/cpp-beginners/thread193078.html
Задание такое,необходимо сформировать матрицу размером n*m, а затем переставить строки так, что бы на главной диагонали матрицы были расположены элементы наибольшие по обсолютной величине. я загряз уже в самом начале, я незнаю как задать двумерную матрицу, а уж тем более потом и ещё отсортировать, если кто может помочь, то помогите плиз.. вот я кое что придумал но там где я пытаюсь...
C++ Найти сумму модулей элементов массива, расположенных после первого положительного типичная задачка: В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1. номер максимального по модулю элемента массива; 2. сумму модулей элементов массива, расположенных после первого положительного элемента. Преобразовать массив таким образом, чтобы сначала располагались все элементы, целая часть которых лежит в интервале , а потом – все остальные. некорректно... http://www.cyberforum.ru/cpp-beginners/thread193063.html
C++ циклы функций isdigit, insert
никак не могу разобраться как дописать следующие функции: int isdigit(char c) { insert(char *s, char c, int i) {
C++ Запись массива в dat файл
Хочу записать большой массив в dat файл но получаю ошибку error C2070: int : недопустимый оператор sizeof если делаю массив чуть поменьше то все проходит без ошибок int card_5={0}; FILE * fout = fopen("card_5_ryka.dat", "wb"); fwrite(card_5, sizeof(card_5), 1, fout); fclose(fout);
C++ сортировка строк текста http://www.cyberforum.ru/cpp-beginners/thread193030.html
этот код выносит мне мозг, разные компиляторы читают его по-разному, ошибка очевидно в функции gets или я ошибаюсь? задачка: вводим с клавиатуры текст в конце каждой строки enter, признаком конца набора служит пустая строка. далее эти строки требуется отсортировать. вот мой код: #include <stdio.h> #include <conio.h> #include <string.h> #define Nmax 50; void main()
C++ Проверить код на корректность Сделал лабу, все работает отлично.... Но я не уверен что она написана нормально, может где то переменная не там обявляется или не так передается , может функция какая то не так написана... проверте , буду очень благодарен )) #include <iostream> #include <cstdlib> #include<clocale> #include <fstream> #include <conio.h> using namespace std; struct LIST { подробнее

Показать сообщение отдельно
УмкаССервера
0 / 0 / 0
Регистрация: 12.06.2010
Сообщений: 14
18.11.2010, 07:27     Бинарные деревья
Здравствуйте!! Передо мной стоит не простая задача....Описать класс, реализующий бинарное дерево, обладающее возможностью добавления новых элементов, удаления существующих, поиска элемента по ключу, а также последовательного доступа ко всем элементам.
Написать программу, использующую этот класс для представления англо-русского словаря....
я ужасно не дружу с бинарными деревьями!! Нашла программу реализации бинарного дерева с помощью класса, но для данных тип int...и даже её не могу переделать под свою задачу...помогите пожалуйста..как обычно сроки поджимают....


#include "stdafx.h"
#include<iostream>
#include<math.h>

using namespace std;

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

class TREE
{
private:
node *Tree; //Указатель на корень дерева.
void Search (int,node**);
public:
TREE() {Tree=NULL;}
node** GetTree () {return &Tree;} //Получение вершины дерева.
void BuildTree ();
void CleanTree (node **);
void ObhodEnd (node **);
void ObhodLeft (node **);
void ObhodBack (node **);
void Vyvod (node**,int);
int Height (node**);
};

void main ()
{
TREE A;

A.BuildTree ();
cout<<"\nВывод дерева:\n";
A.Vyvod (A.GetTree(),0);
cout<<"\nВысота дерева:"<<A.Height(A.GetTree())<<endl;
cout<<"\nЛевосторонний обход дерева: ";
A.ObhodLeft (A.GetTree());
cout<<"\nКонцевой обход дерева: "; A.ObhodEnd (A.GetTree());
cout<<"\nОбратный обход дерева: "; A.ObhodBack (A.GetTree());
A.CleanTree (A.GetTree());
}

void TREE::BuildTree ()
// Построение бинарного дерева (рекурсивный алгоритм).
// Tree - указатель на корень дерева.
{

int el;

cout<<"Vvedite klyuch dereva ...\n";
cin>>el;
while (el!=0)
{ Search (el,&Tree); cin>>el; }
}

void TREE::Search (int x,node **p)
// Поиск вершины с ключом x в дереве со вставкой
// (рекурсивный алгоритм).
// *p - указатель на корень дерева.
{
if (*p==NULL)
{// Вершины в дереве нет; включить ее.
*p = new(node);
(**p).Key = x; (**p).Count = 1;
(**p).Left = NULL; (**p).Right = NULL; }
else
if (x<(**p).Key) Search (x,&((**p).Left));
else
if (x>(**p).Key) Search (x,&((**p).Right));
else (**p).Count = (**p).Count + 1;
}

void TREE::ObhodLeft (node **w)
//Левосторонний обход дерева.
//*w - указатель на корень дерева.
{
if (*w!=NULL)
{
cout<<(**w).Key<<" ";
ObhodLeft (&((**w).Left));
ObhodLeft (&((**w).Right));
}
}

void TREE::ObhodEnd (node **w)
//Концевой обход дерева.
//*w - указатель на корень дерева.
{
if (*w!=NULL)
{ ObhodEnd (&((**w).Left));
ObhodEnd (&((**w).Right));
cout<<(**w).Key<<" "; }
}

void TREE::ObhodBack (node **w)
//Обратный обход дерева.
//*w - указатель на корень дерева.
{
if (*w!=NULL)
{ ObhodBack (&((**w).Left));
cout<<(**w).Key<<" ";
ObhodBack (&((**w).Right)); }
}

void TREE::CleanTree (node **w)
//Очистка дерева.
//*w - указатель на корень дерева.
{
if (*w!=NULL)
{ CleanTree (&((**w).Left));
CleanTree (&((**w).Right));
delete *w; }
}

void TREE::Vyvod (node **w,int l)
//Изображение дерева *w на экране дисплея
// (рекурсивный алгоритм).
//*w - указатель на корень дерева.
{
int i;

if (*w!=NULL)
{ Vyvod (&((**w).Right),l+1);
for (i=1; i<=l; i++) cout<<" ";
cout<<(**w).Key<<endl;
Vyvod (&((**w).Left),l+1); }
}

int TREE::Height (node **w)
//Определение высоты бинарного дерева.
//*w - указатель на корень дерева.
{
int h1,h2;
if (*w==NULL) return (-1);
else
{
h1 = Height (&((**w).Left));
h2 = Height (&((**w).Right));
if (h1>h2) return (1 + h1);
else return (1 + h2);
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 01:51. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru