Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.96/23: Рейтинг темы: голосов - 23, средняя оценка - 4.96
Bogdan
1 / 1 / 0
Регистрация: 03.06.2009
Сообщений: 5
1

генеалогическое дерево на C++

17.06.2009, 13:03. Просмотров 4256. Ответов 1
Метки нет (Все метки)

Помогите пожалуйста с утра сижу использую бинарное дерево.Не получаеться с вводом когда вожу например Bogdan1990 прога разбивает это на отдельные элементы потом переделал выдает ошибку.Вот задание :Разработать программу, формирующую динамическую структуру данных для хранения генеалогического дерева. Каждая вершина дерева должна содержать следующую информацию: имя и год рождения.
Помогите кому не сложно
вот мой набросок:
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
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
//описание дерева 
struct tree {
        char str[15];   
       tree *leftchild;
       tree *rightchild;
       tree *parent;
        } ;
tree *root,*curr;
 
//инициализация данных
void tree_init(void)
{
root=(tree *) new tree;
root->str='Bogdan1990';
root->rightchild=NULL;
root->leftchild=NULL;
root->parent=NULL;
curr=root;
}
//добавление узлов в левую ветвь дерева
void add_tree_left(char ins[15])
{
tree *newT=(tree *) new tree;
newT->str=ins;
newT->rightchild=NULL;
newT->leftchild=NULL;
newT->parent=curr;
curr->leftchild=newT;
curr=newT;
}
//добавление узлов в правую ветвь дерева
void add_tree_right(char ins[15])
{
tree *newT=(tree *)new tree;
newT->str=ins;
newT->rightchild=NULL;
newT->leftchild=NULL;
newT->parent=curr;
curr->rightchild=newT;
curr=newT;
}
//вывод на экран элементов дерева,
void tree_print(tree *c)
{
if (c!=NULL) {
             tree_print(c->leftchild);
         if (c==curr) {cout<<c->str;} else {cout << " "<<c->str<<" ";c->str;};
             tree_print(c->rightchild);
         }
}
 
//главная процедура
int main()
{
 
char tmp[15];int d;
do {
    printf("\n========================\n1-add_tree_left;\n2-add_tree_right;\n3-tree_print;\n");
   scanf("%d", &d);
   if (d==1) {cout<<"Vvedite element: ";cin>>tmp;add_tree_left(tmp);};
   if (d==2) {cout<<"Vvedite element: ";cin>>tmp;add_tree_right(tmp);};
   if (d==3) {tree_print(root);};
   } while (d!=0);
return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.06.2009, 13:03
Ответы с готовыми решениями:

Бинарное дерево. Удалить из дерева часть вершин так, чтобы оставшееся дерево стало пирамидой
Дано бинарное дерево. Удалить из дерева часть вершин так, чтобы оставшееся дерево стало пирамидой.

Дано дерево. Распечатать дерево по уровням
Дано дерево. Распечатать дерево по уровням.

Исходное бинарное дерево превратить в бинарное дерево поиска, при этом сохранив его структуру
Помогите, не могу понять!( Нужно исходное бинарное дерево превратить в бинарное дерево поиска, при...

Напишите программу, которая бы читала дерево в формате (а) и затем печатала бы это дерево в формате (б).
Представление дерева: а) Д (Б (А, Ф (В,)), Е (,З (Ж, И))) б) Д Б ...

Генеалогическое дерево
Подскажите пожалуйста с помощью чего сделать вывод информации и соединять по родству??? Может есть...

1
shiev
0 / 0 / 1
Регистрация: 29.10.2009
Сообщений: 2
26.11.2009, 14:47 2
есть такая штука STL
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <map>
#include <string>
using namespace std;
struct value_t
{
...
};
struct node_t
{
value_t _value;
map<string,node_t> _node
};
main()
{
node_t node_child; 
node_t node_root; 
node_root._node.insert(make_pair(''потомок",node_child));
node_root._node[''потомок"].insert(make_pair(''потомок",node_child));
}
получается дерево любого уровня вложенности.
понятно это принцип. Детали реализации могут быть разные.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.11.2009, 14:47

Генеалогическое дерево
Всем добрый вечер(утро,день,ночь) Есть задание : Реализовать Генеалогическое дерево. Паспортные...

Генеалогическое дерево
Подскажите пожалуйста с помощью чего сделать вывод информации и соединять по родству??? Может есть...

Генеалогическое дерево на Python3
Хочу написать в ближайшей перспективе программу на Python3 семейное гинеалогическое дерево. Типа...


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

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

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