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

Ошибка при выводе строки - C++

Восстановить пароль Регистрация
 
maestro1992
0 / 0 / 0
Регистрация: 23.09.2010
Сообщений: 3
23.09.2010, 10:26     Ошибка при выводе строки #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
#include <iostream>
#include <conio.h>
#include <string.h>
using namespace std;
class BinarySearchTree
{
private:
    struct tree_node
    {
        tree_node* left;
        tree_node* right;
        string eng,rus;
    };
    tree_node* root;     // это только фрагмент класса...
 
void BinarySearchTree::inorder(tree_node* p)
{
    if(p != NULL)   
    {
        if(p->left) inorder(p->left);
        cout<<" "<<p->eng<<" "<<endl;
        if(p->right) inorder(p->right);
    }
    else return;
}
не хочет выводить строку eng переменная типа string.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
obuhanoe
23 / 21 / 2
Регистрация: 25.08.2010
Сообщений: 93
23.09.2010, 10:35     Ошибка при выводе строки #2
структуру специально сделали закрытой?
и желательно полный текст покажите!
maestro1992
0 / 0 / 0
Регистрация: 23.09.2010
Сообщений: 3
23.09.2010, 10:45  [ТС]     Ошибка при выводе строки #3
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
#include <iostream>
#include <conio.h>
#include <string.h>
using namespace std;
 
class BinarySearchTree
{
private:
    struct tree_node
    {
        tree_node* left;
        tree_node* right;
        string eng,rus;
    };
    tree_node* root;
public:
    BinarySearchTree()
    {
        root = NULL;
    }
    bool isEmpty() const { return root==NULL; }
    void print_inorder();
    void inorder(tree_node*);
    void insert(string s1, string s2);
};
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    BinarySearchTree a;
    a.insert("exit","vihod");
    a.insert("creative","dobavit");
    a.insert("bread","hleb");
    a.insert("add","dobavit");
    a.print_inorder();
    getch();
    return 0;
}
 
 
void BinarySearchTree::insert(string s1, string s2)
{
    tree_node* t = new tree_node;
    tree_node* parent;
    t->eng = s1;
    t->rus = s2;
    t->left = NULL;
    t->right = NULL;
    parent = NULL;
    
    if(isEmpty()) root = t;
    else
    {
        
        tree_node* curr;
        curr = root;
        
        while(curr)
        {
            parent = curr;
            if(t->eng[1] > curr->eng[1]) curr = curr->right;
            else curr = curr->left;
        }
 
        if(t->eng[1] < parent->eng[1])
            parent->left = t;
        else
            parent->right = t;
    }
}
 
    void BinarySearchTree::print_inorder()
{
    inorder(root);
}
 
void BinarySearchTree::inorder(tree_node* p)
{   if(p != NULL)   
    {
        if(p->left) inorder(p->left);
            cout<<" "<<p->eng<<" "<<endl;
        if(p->right) inorder(p->right);
    }
    else return;
}
вот полный текст...
fasked
Эксперт C++
 Аватар для fasked
4924 / 2504 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
23.09.2010, 10:50     Ошибка при выводе строки #4
maestro1992, gcc кстати все прожевал и все вывел. но ради интереса попробуйте подключить не string.h, а
C++
1
#include <string>
так правильнее, потому что string.h это Си заголовок, никаких классов std::string там само собой не может быть
Yandex
Объявления
23.09.2010, 10:50     Ошибка при выводе строки
Ответ Создать тему
Опции темы

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