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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Ошибка при выводе больше одного элемента в списке http://www.cyberforum.ru/cpp-beginners/thread817936.html
Доброго времени суток, господа. Помогите реализовать вывод списка. Если вывожу один элемент, то выводит нормально, если больше, то выдает ошибку. Не могу понять где ошибка. Код C++ # include <iostream> using namespace std; struct Spis { int i; Spis* next;
C++ Рекурсивная функция (вычислить сумму) Помогите вычислить сумму с помощью рекурсивной функции http://www.cyberforum.ru/cpp-beginners/thread817916.html
C++ Системы исчесления
Будет ли разница в выполнении кода, если цифры записывать в двоичной, десятеричной, восьмеричной системе исчисления. Если да, то какой вариант наиболее оптимизированее?
C++ Найти сумму бесконечного ряда
Здравствуйте, дорогие форумчане. Помогите, пожалуйста, исправить ошибку. Задание прикрепил на скрине, так как не нашёл тут редактор формул. Вот сама программа, но у меня в ней ошибка, так как в консоли вообще выводит не совсем то, что надо. #include<iostream> #include<conio.h> #include<math.h> int main() {int k;
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 external '_initwindow' referenced from C:\USERS\ADMIN\DOCUMENTS\RAD STUDIO\LABS\GRAPHICS\DEBUG\MAIN.OBJ Error: Unable to perform link подробнее

Показать сообщение отдельно
краб
0 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 52
25.03.2013, 13:40     переводчик поиском бинарного дерева не работает программа!
Программа содержит ошибки помогите убрать
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;
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru