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

переводчик поиском бинарного дерева не работает программа! - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка при выводе больше одного элемента в списке http://www.cyberforum.ru/cpp-beginners/thread817936.html
Доброго времени суток, господа. Помогите реализовать вывод списка. Если вывожу один элемент, то выводит нормально, если больше, то выдает ошибку. Не могу понять где ошибка. Код C++ # include...
C++ Рекурсивная функция (вычислить сумму) Помогите вычислить сумму с помощью рекурсивной функции http://www.cyberforum.ru/cpp-beginners/thread817916.html
C++ Системы исчесления
Будет ли разница в выполнении кода, если цифры записывать в двоичной, десятеричной, восьмеричной системе исчисления. Если да, то какой вариант наиболее оптимизированее?
C++ Найти сумму бесконечного ряда
Здравствуйте, дорогие форумчане. Помогите, пожалуйста, исправить ошибку. Задание прикрепил на скрине, так как не нашёл тут редактор формул. Вот сама программа, но у меня в ней ошибка, так как в...
C++ Построение массива 6×6 http://www.cyberforum.ru/cpp-beginners/thread817905.html
День добрый. Помогите разобраться с массивом 36 35 33 30 26 21 34 32 29 25 20 15 31 28 24 19 14 10 27 23 18 13 09 06 22 17 12 08 05 03 16 11 07 04 02 01
C++ Установка библиотеки WinBGIm для Embarcadero Rad Studio 2010 Пытаюсь установит графическую библиотеку WinBGIm в Rad Studio 2010. Скинул все файлы в папку и в проекте указал её в include path. При вызове initwindow() при сборке ошибка Error: Unresolved... подробнее

Показать сообщение отдельно
краб
0 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 52

переводчик поиском бинарного дерева не работает программа! - C++

25.03.2013, 13:40. Просмотров 359. Ответов 1
Метки (Все метки)

Программа содержит ошибки помогите убрать
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
#include <iostream>
#include <math.h>
#include <locale>
using namespace std;
 
class node
 
    {
     public: 
       string word1;//английское слово - ключ для поиска.
       string word2;//русское слово.
       node* left;//левый сын.
       node* right;//правый сын.
    
       node (string S1,string S2)//конструктор
 
       {
            word1=S1;
            word2=S2;
            left=0;
            right=0;
       }
        void tree()//cоздание дерева
        {
       node *link;
       tree(){link=0;}
       void add(string S1,string S2)
       {
            if (link) link->add(S1,S2);
            else { new p=node(S1,S2);link=&p;}
       }
       void print(){if (link)link->print(1);else cout << "Tree is empty\n";}
       string search(string s){if (link) else link->search(s);else cout << "Tree is empty\n";else "error";}
}
       void add(string S1,string S2)//добавление элемента
       {   
            int i=0;
            while (S1[i]==word1[i])i++;//тут ищим первую не совпадающую букву двух слов.
            //если у текущего узла есть ветви. то надо добавить в эти ветви.
            if ((S1[i]>word1[i])&&left) left->add(S1,S2);
            if ((S1[i]<word1[i])&&right) right->add(S1,S2);
            string *p;
            //если у текущего узла нету ветвей надо добавить к его left или right.
            if ((S1[i]>word1[i])&& !left) { p=node(S1,S2); left=&p;}
            if ((S1[i]<word1[i])&& !right){ p=node(S1,S2); right=&p;}
        }
        void print(int n)//вывод на экран
        {
             if (left)left->print(n+1);
             for (int i=0;i<n;i++)cout << "    " ;cout <<word1 <<"="<<word2<<endl;
             if (right)right->print(n+1);
        }
        string search(string s) //поиск слова по ключу
        {string S1;
               if (s==word1)return word2; //ключ совпал.
               int i=0;
               while (S1[i]==word1[i])i++;//тут ищим первую не совпадающую букву двух слов.
               //спускаемя влево или вправо.
               if ((S1[i]>word1[i])&&left) return left->search(s);
               if ((S1[i]<word1[i])&&right) return right->search(s);
        }
    
 
};
 
 
int main()
{
    tree T;//создали пустое дерево.
    T.add("Hello","Privet");
    T.add("Goodby","Poka");
    T.add("Dog","Sobaka");
    T.add("Pain","C++");
    T.add("Car","Avtomobil");
    T.print();//вывели содержимое дерева на экран
    
    string s=T.search("Dog");//совершили поиск по ключу
    cout << s<<endl;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.