Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/25: Рейтинг темы: голосов - 25, средняя оценка - 4.56
1 / 1 / 0
Регистрация: 24.12.2016
Сообщений: 169
1

Англо-русский словарь, реализованный через бинарное дерево

26.10.2017, 20:25. Показов 5103. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Описать класс, реализующий бинарное дерево, обладающее возможностью добавления новых элементов, удаления существующих, поиска элемента по ключу, а также последовательного доступа ко всем элементам.
Написать программу, использующую этот класс для представления англо-русского словаря. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса. Предусмотреть возможность формирования словаря из файла и с клавиатуры.
Напишите пожалуйста полный код. Буду очень благодарен.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.10.2017, 20:25
Ответы с готовыми решениями:

Двоичное дерево. Англо-русский словарь
Как сделать, чтобы count прибавлялся для одного слова, которое искали, а не для всех сразу. ...

Англо-русский словарь построен как двоичное дерево.
Всем привет! Помогите пожалуйста с написанием программы:cry: Очень прошу:gcray: Англо-русский...

Англо-русский словарь
Прошу вас помочь написать мне программу на Borland C, программа (англо-русский словарь) Вот...

Англо-русский словарь
нужно написать программу "англо-русский и русско-английский словарь" база данных словаря должна...

3
1 / 1 / 0
Регистрация: 24.12.2016
Сообщений: 169
29.10.2017, 16:41  [ТС] 2
актуально. до сих пор.
0
1 / 1 / 0
Регистрация: 24.12.2016
Сообщений: 169
28.11.2017, 07:43  [ТС] 3
Описать класс, реализующий бинарное дерево, обладающее возможностью добавления новых элементов, удаления существующих, поиска элемента по ключу, а также последовательного доступа ко всем элементам.
Написать программу, использующую этот класс для представления англо-русского словаря. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса. Предусмотреть возможность формирования словаря из файла и с клавиатуры.
Напишите пожалуйста полный код. Буду очень благодарен.
0
1 / 1 / 0
Регистрация: 24.12.2016
Сообщений: 169
16.12.2017, 18:08  [ТС] 4
Описать класс, реализующий бинарное дерево, обладающее возможностью добавления новых элементов, удаления существующих, поиска элемента по ключу, а также последовательного доступа ко всем элементам.
Написать программу, использующую этот класс для представления англо-русского словаря. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса. Предусмотреть возможность формирования словаря из файла и с клавиатуры.
Напишите пожалуйста полный код. Буду очень благодарен.

Добавлено через 6 часов 7 минут
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
// ConsoleApplication5.cpp: главный файл проекта.
 
#include "stdafx.h"
#include <iostream>
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**);
};
int main()
{
    TREE A;
    A.BuildTree();
    cout << "\nVyvod Dereva:\n";
    A.Vyvod(A.GetTree(), 0);
    cout << "\nVysota dereva:" << A.Height(A.GetTree()) << endl;
    cout << "\nLevostoronnyi obhod dereva: ";
    A.ObhodLeft(A.GetTree());
    cout << "\nKonsevoy obhod dereva: "; A.ObhodEnd(A.GetTree());
    cout << "\nObratniy obhod dereva: "; A.ObhodBack(A.GetTree());
    A.CleanTree(A.GetTree());
    system("pause");
    return 0;
}
void TREE::BuildTree()
{
    int el;
    cout << "Vvedite slovo ...\n";
    cin >> el;
    while (el != 0)
    {
        Search(el, &Tree); cin >> el;
    }
}
void TREE::Search(int x, node **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)
{
    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);
    }
}
имеется код, помогите переделать под мое задание. Срочно нужно.заранее спасибо.
0
16.12.2017, 18:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.12.2017, 18:08
Помогаю со студенческими работами здесь

Англо-русский словарь на С++
Помогите пожалста. Втупляю, немогу придумать ничего дельного. Разработать класс «Граф» для...

Класс «англо – русский словарь»
Определите класс «англо – русский словарь». Словарь состоит из различных слов английского языка,...

Русско-английский и англо-русский словарь
Здравствуйте господа программисты! Мне нужна помощь. В курсовой работе есть задание &quot;Создать проект...

Англо-русский словарь в виде двоичного дерева
Строки 105 и 60, ошибки С4703 и С4700 соответственно. Задача:Каждая компонента содержит английское...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru