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

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

Восстановить пароль Регистрация
 
краб
0 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 52
25.03.2013, 13:40     переводчик поиском бинарного дерева не работает программа! #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;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2013, 13:40     переводчик поиском бинарного дерева не работает программа!
Посмотрите здесь:

Построение бинарного дерева C++
C++ Обход бинарного дерева
C++ Построение бинарного дерева на основе не бинарного
C++ Вывод бинарного дерева
Построение бинарного дерева C++
C++ обход бинарного дерева
Создание бинарного дерева C++
C++ Запись бинарного дерева

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sovaz1997
CEO SOVAZ Corp.
 Аватар для sovaz1997
379 / 225 / 2
Регистрация: 17.12.2011
Сообщений: 816
Записей в блоге: 1
25.03.2013, 13:44     переводчик поиском бинарного дерева не работает программа! #2
У тебя много функций в функции. Исправляй как-то сам
Yandex
Объявления
25.03.2013, 13:44     переводчик поиском бинарного дерева не работает программа!
Ответ Создать тему
Опции темы

Текущее время: 00:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru