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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Как создать функцию http://www.cyberforum.ru/cpp-beginners/thread772990.html
char podstorka(char str1,char str2,int m,char str3) { size_t pos=m; size_t len1=strlen(str1); size_t len2=strlen(str2); if(len1<pos) pos=len1; memcpy(str3,str1,sizeof(char)*pos); memcpy(str3+pos,str2,sizeof(char)*len2); memcpy(str3+pos+len2,str1+pos,sizeof(char)*(len1-pos+1)); return str3;
C++ перевод из числа в прописной вид не массив Здравствуйте товарищи!Нужна ваша помощь в исправлении кода. Что нужно мне изменить в коде что бы при вводе числа например 1234.34 выводило одна тысяча двести тридцать четыре доллара тридцать четыре цента при этом переводиться должны числа от 0 до 999 999 999 С указателями и строками пока не очень дружу Класс string препод запретил , как и функции для работы со строками и... http://www.cyberforum.ru/cpp-beginners/thread772966.html
C++ Шаблонный класс, принимающий InputIterators в конструкторе
Есть Stack.h #ifndef _STACK_H_ #define _STACK_H_ #include <cstddef> #include <iterator> template <class T> class Stack { public:
Определить количество натуральных трехзначных чисел, сумма цифр которых равна заданному числу N C++
1. Определить количество натуральных трехзначных чисел, сумма цифр которых равна заданному числу N.
C++ сумма элементов ряда http://www.cyberforum.ru/cpp-beginners/thread772920.html
http://imghost.tambovnet.org/thumbs/f49a6abc43ed3f52cde40d5913765d56.jpg
C++ Как запретить вызов конструктора 2-ой раз Как можно сделать чтобы конструктор не вызывался 2-раз #include <iostream> #include "Model.h" int main() { подробнее

Показать сообщение отдельно
VIZZE
 Аватар для VIZZE
1 / 1 / 0
Регистрация: 18.05.2012
Сообщений: 43
27.01.2013, 19:20     Запись дерева в файл
Помогите организовать запись дерева в файл.
текст:
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <conio.h>
#include <string.h>
 
#define VER 50
#define SIZE 20
 
#define FALSE 0
#define TRUE 1
using namespace std;
class Derevo
{
private:
        char Sename[SIZE];
        Derevo *left;
        Derevo *right;
        float data;
public:
        void set(char *p1, float k, Derevo **node, Derevo num1)
                {
                strcpy (Sename, p1);
                data=k;
                Insert(Sename, data, &*node, num1);
                }
        void Insert(char *Sename, float data, Derevo **node, Derevo num1)
                {
                if (*node == NULL)                                      /* åñëè node – Г*óëåâîé ГіГЄГ*Г§Г*òåëü */
                        {
                        *node= new Derevo;                              /*ñîçäГ*ГІГј Г*îâûé óçåë*/
                        strcpy((*node)->Sename, Sename);
                        (*node)->data = data;
                        (*node)->left = (*node)->right = NULL;
                        }
                else
                        {
                        if (strcmp(Sename, (*node)->Sename) > 0)
                                Insert(Sename, data, &(*node)->right, num1);
                        else if (strcmp(Sename, (*node)->Sename) < 0)
                                Insert(Sename, data, &(*node)->left, num1);
                        else
                                cout<<"\n There is such+ element in the tree";
                        }
                }
        void Delete(Derevo **node, float val, Derevo num1)
                {
                if (*node == NULL)
                        {
                        cout<<"\n There is not such element";
                        }
                if      ((*node)->data < val)
                        Delete(&(*node)->right, val, num1);
                else if ((*node)->data > val)
                        Delete(&(*node)->left, val, num1);
                else
                        {
                        Derevo *left = (*node)->left, *right = (*node)->right;
                        free(*node);
                        if (left == NULL)
                                *node = right;
                        else if (right == NULL)
                                *node = left;
                        else
                                {
                                *node = left;
                                while (left->right != NULL)
                                        left = left->right;
                                left->right = right;
                                }
                        }
                }
        void View(Derevo *node)
                {
                if (node->left)
                        View(node->left);
 
                cout<<" "<<node->Sename<<" "<<node->data<<'\n';
 
                if (node->right)
                        View(node->right);
                }
        int strcmp (char *s1, char *s2)         // ГґГіГ*êöèÿ äëÿ Г±Г°Г*ГўГ*ГҐГ*ГЁГї ñòðîêîâûõ
            {                                   // ýëåìåГ*òîâ Г¬Г*ññèâîâ ñòðóêòóð
            for (; *s1==*s2 ; s1++, s2++)
                if (!*s1) return 0;
                    return *s1-*s2;
                }
/////////////////////////////////////////////////////////////////////////////////////////
        void SeekNode (Derevo *node, char *p2)
                {
                if (node->left)
                        SeekNode ( node->left, p2);
                if (strcmp(node->Sename, p2) == 0)
                        cout<<"\n "<<node->Sename<<" "<<node->data<<'\n';
                if (node->right)
                        SeekNode (node->right, p2);
                }
//////////////////////////////////////////////////////////////////////////////////////////
 
 
//////////////////////////////////////////////////////////////////////////////////////
        
    ////////////////////////////////////////////////////////////////////
 
 
 
 
 
};
 
int main(void)
{
system("cls");
int i=0, j=0, input;
Derevo *root=NULL;
Derevo num1[VER];
char p1[100], p2[100];
float k, key;
int done = FALSE;
char d;
 
while (!done)
        {
        system("cls");
        cout<<"\n\n I)nsert, D)elete, V)iew, S)earch, Q)uit:  ";
    d = toupper (getchar());
    switch (d)
            {
                case 'I':
                        cout<<"\n vvedite imya i daty: ";
                        cin>>p1;
                        cin>>k;
                        num1[1].set(p1, k, &root, *num1);
                        i++, j++;
                        cout<<"\n Element dobavlen. Press any key...";
                        getch();
                        break;
                case 'D':
                        cout<<"\n vvedite dannyie: "; cin>>input;
                        num1[1].Delete(&root, input, *num1);
                        j--;
                        cout<<"\n Element udalen. Press any key...";
                        getch();
                        break;
//////////////////////////////////////////////////////////////////esli ona zarabotaet to ya ne p'yu kofe
                case 'S':
                        cout<<"\n Vvedite nazvanie: "; cin>>p2;
                num1->SeekNode(root, p2);
                cout<<"\n\n Press any key...";
                        getch();
                        break;
//////////////////////////////////////////////////////////////////
                case 'V':
                        if (root)
                                {
                                cout<<"\n Vyvod dereva: \n\n";
                                num1[1].View(root);
                                cout<<"\n Press any key...";
                                getch();
                                }
                        else    {
                                cout<<"\n derevo pustoe";
                                getch();
                                }
                        break;
 
 
////////////////////////////////////////////////////////////////////////
 
///////////////////////////////////////////////////////////////////////
                case 'Q':
                done = TRUE;
                break;
                }
    }
return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru