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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
краб
0 / 0 / 0
Регистрация: 16.11.2012
Сообщений: 52
#1

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

25.03.2013, 13:40. Просмотров 354. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2013, 13:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос переводчик поиском бинарного дерева не работает программа! (C++):

Запись бинарного дерева в файл и восстановление из него этого дерева - C++
Задача такая: есть бинарное дерево. Каждый элемент дерева содержит 3 указателя - 1 указатель на структуру с данными, 2 и 3й указатель на...

Написать шаблон бинарного дерева с функцией распечатки дерева - C++
Не понимаю, что от меня хотят. Дано такое задание: Написать шаблон бинарного дерева с функцией распечатки дерева *(+(d,e),c) в виде...

Создание бинарного дерева из бинарного файла - C++
struct Bin { string name; string city; int players; int score; }; void ReadFromBin(Point*&amp; Tree) { Bin q;

Построение бинарного дерева на основе не бинарного - C++
В лабораторной работе есть такое задание: Создайте процедуру построения бинарного дерева на основе не бинарного. Объясните как вообще...

Вывод бинарного дерева на экран в виде "дерева" - C++
основная задача: подсчет количества листьев. проблема: при просмотре хочу выводить бин. дерево, в красивом виде, возможно использование...

Прошивка бинарного дерева на С++ - C++
Уважаемые программисты! Может у кого то есть опыт по написанию программы по прошивке бинарного дерева на С++ или подскажет по какому...

1
sovaz1997
CEO SOVAZ Corp.
380 / 226 / 2
Регистрация: 17.12.2011
Сообщений: 819
Записей в блоге: 1
Завершенные тесты: 1
25.03.2013, 13:44 #2
У тебя много функций в функции. Исправляй как-то сам
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2013, 13:44
Привет! Вот еще темы с ответами:

Запись бинарного дерева - C++
Всем привет! Нужно записать следующий массив (вверху картинки) в бинарное дерево, которое имеет структуру, которая на картинке во...

Построение бинарного дерева - C++
Доброй ночи! Пятые сутки не могу разобрать реализацию алгоритма на С++ Console Wizzard! Что такое бинарное дерево я знаю, даже разобрал...

Создание бинарного дерева - C++
Есть задания и я знаю как их сделать, но не понимаю, как создать и вывести на экран бинарное дерево. Подскажите пожалуйста, ссылки, коды,...

Реализация бинарного дерева - C++
написать программу, реализующую бинарное дерево. Предусмотреть процедуры и функции: инициализация дерева, вставка элемента (вершины),...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru