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

Запись из файла в дерево - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Что выводит массив? http://www.cyberforum.ru/cpp-beginners/thread916756.html
#include<stdio.h> int main(){ int a = {1,2,3,4,5}; printf("a = %d\n", a); return 0; }
C++ Обработка двумерных массивов. Указатели Найти наименьший элемент матрицы X (mn) и записать нули в ту строку и столбец, где он находится. http://www.cyberforum.ru/cpp-beginners/thread916747.html
C++ Программирование циклов с параметром. Одномерные массивы
Произвести следующую обработку 15 вещественных чисел: найти количество отрицательных чисел, а числа, входящие в диапазон возвести в квадрат. Потрудитесь, пожалуйста, в следующий раз самостоятельно скопировать и вставить текст задания. Задание. Произвести следующую обработку 15 вещественных чисел: найти количество отрицательных чисел, а числа, входящие в диапазон возвести в квадрат....
Заменить функцию в программе на шаблон C++
Помогите пожалуйста заменить функцию в программе на шаблон, у меня все попытки заканчиваются ошибками: требуется переопределение и перегруженная функция отличается от int main только возвращаемым типом. #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <iostream> using namespace std; void perestanovka ( int **massiv, int chislo ) { int **newmassive;
C++ Программирование циклов с неизвестным заранее числом повторений http://www.cyberforum.ru/cpp-beginners/thread916743.html
Составить схему программы и программу на языке C++ с использованием оператора цикла с предусловием и оператора цикла с постусловием для вычисления функции с заданной точностью с использованием разложения в ряд: cosx=1-\frac{{x}^2{}}{2!}+\frac{{x}^4{}}{4!}+\frac{{x}^6{}}{6!}+...
C++ Определить принадлежность точки заштрихованной области По заданным координатам точки определить, где находится точка: 1) внутри заштрихованной области; 2) вне заштрихованной области; 3) на границе этой области. 1. Составить алгоритм решения задачи. 2. Составить программу, осуществляющую ввод исходных данных, необходимые вычисления и вывод результатов. Ввод и вывод сопроводить комментариями. подробнее

Показать сообщение отдельно
igorrr37
 Аватар для igorrr37
1599 / 1227 / 121
Регистрация: 21.12.2010
Сообщений: 1,875
Записей в блоге: 7
03.07.2013, 09:51     Запись из файла в дерево
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
 
class TKartoteka
{
private:
 
    struct Node
    {
        char TitleComposition [30];
        char TitleAlbum [30];
        char Executor [30];
        char Genre[30];
        int Year;
        int Duration;
        long int ID;
        short num;
        long int GenerationID();
        Node* left;
        Node* right;
 
        Node()
        {
            strcpy(this->TitleComposition, "");
            strcpy(this->TitleAlbum, "");
            strcpy(this->Executor, "");
            strcpy(this->Genre, "");
            this->Year=0;
            ID= 0;
            this->Duration=0;
            this->num=0;
            this->left=0;
            this->right=0;
        }
 
        Node(Node const& rhs)
        {
            strcpy(TitleComposition, rhs.TitleComposition);
            strcpy(TitleAlbum, rhs.TitleAlbum);
            strcpy(Executor, rhs.Executor);
            strcpy(Genre, rhs.Genre);
            Year=rhs.Year;
            Duration=rhs.Duration;
            num=rhs.num;
            ID=rhs.ID;
            left=rhs.left;
            right=rhs.right;
        }
 
        void insert(Node const& rhs)
        {
            if(rhs.ID < ID)
            {
                if(!left)
                    left = new Node(rhs);
                else
                    left->insert(rhs);
            }
            if(rhs.ID > ID)
            {
                if(!right)
                    right = new Node(rhs);
                else
                    right->insert(rhs);
            }
        }
 
        void print() const
        {
            if(left)
                left->print();
            std::cout << ID << "\n\n";
            if(right)
                right->print();
        }
 
    };
    Node* pRoot;//корневой
 
public:
 
    TKartoteka() : pRoot(0){}
 
    void insert(Node const& rhs)
    {
        if(!pRoot)
            pRoot = new Node(rhs);
        else
            pRoot->insert(rhs);
    }
 
    void LoadFile();
 
    void print() const
    {
        if(pRoot)
            pRoot->print();
    }
};
 
void TKartoteka::LoadFile()
{
    Node tmp;
    FILE* f=fopen("in.txt","rt");
    if (f)
    {
        while (!feof(f))
        {
            fscanf(f, "%s %s %s %s %d %d %d %d", tmp.TitleComposition, tmp.Executor, tmp.TitleAlbum, tmp.Genre,
                &tmp.Year, &tmp.Duration, &tmp.ID, &tmp.num);
            insert(tmp);
            //fwrite("%s %s %s %s %d %d %d \n", 4*sizeof(char)+3*sizeof(int), 7, f);
        }
        fclose(f);
 
    }
    else
        cout << "File not found";
}
 
 
int main()
{
    TKartoteka obj;
    obj.LoadFile();
    obj.print();
}
 
Текущее время: 21:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru