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

Разработать класс - C++

Восстановить пароль Регистрация
 
EvgenZa
0 / 0 / 0
Регистрация: 24.12.2010
Сообщений: 11
24.12.2010, 21:23     Разработать класс #1
Требуется разработать класс для работы с деревьями. Только не с бинарными
деревьями, не путайте
Каждый элемент может иметь сколько угодно потомков.
В классе должны быть реализованы стандартные функции для работы с деревьями
(добавление потомка, удаление).

*Каждый узел состоит из двух чисел: int и double.

Такое вот соседу задали помогите другу моему плиз ..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.12.2010, 21:23     Разработать класс
Посмотрите здесь:

Разработать класс C++
Разработать класс C++
C++ Разработать класс
Разработать класс C++
Разработать класс Man (человек) и производный класс Student (студент). Описать атрибуты. C++
Разработать класс и производный класс C++
C++ Разработать класс Tableware (посуда) и производный класс Dish (тарелка). Описать атрибуты
C++ Разработать производный от абстрактного класса Figure класс и класс, производный от производного

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lemegeton
 Аватар для lemegeton
2909 / 1338 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
24.12.2010, 23:37     Разработать класс #2
С использованием STL vector. Поменяйте на самописный контейнер.
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
#include <cstddef>
#include <cstdio>
#include <vector>
 
using std::vector;
 
class Record {
 public:
  int a_;
  double b_;
  Record() : a_(0), b_(0) {}
  Record(int a, double b) : a_(a), b_(b) {}
};
 
class TreeBranch {
 public:
  TreeBranch(char *name) : name_(name) {}
  char *name() const { return name_; }
  vector<TreeBranch> branches;
  vector<Record> leafs;
 private:
  char *name_;
};
 
void display_spaces(int number_of_spaces, int tab) {
  for (int i = 0; i < number_of_spaces/tab; ++i) {
    printf("|");
    for (int j = 0; j < tab-1; ++j)
      printf(" ");
  }
}
 
void display_tree(const TreeBranch& tree, int number_of_spaces = 0, int tab = 2) {
  printf("+%s\n", tree.name());
  for (size_t i = 0; i < tree.branches.size(); ++i) {
    display_spaces(number_of_spaces+tab, tab);
    display_tree(tree.branches[i], number_of_spaces+tab);
  }
  for (size_t i = 0; i < tree.leafs.size(); ++i) {
    display_spaces(number_of_spaces+tab, tab);
    printf("- leaf [%d, %f]\n", tree.leafs[i].a_, tree.leafs[i].b_);
  }
}
 
int main(int argc, char *argv[]) {
  TreeBranch tree("/");
  tree.branches.push_back(TreeBranch("etc"));
  tree.branches.push_back(TreeBranch("bin"));
  tree.branches[1].leafs.push_back(Record(0, 0.1));
  tree.branches[1].leafs.push_back(Record(2, 0.2));
  tree.branches[1].leafs.push_back(Record(4, 0.3));
  tree.branches.push_back(TreeBranch("var"));
  tree.branches.push_back(TreeBranch("usr"));
  tree.branches[3].branches.push_back(TreeBranch("home"));
  tree.branches[3].branches[0].leafs.push_back(Record(1, 1.4));
  tree.branches[3].branches[0].leafs.push_back(Record(1, 1.2));
  tree.branches[3].branches[0].leafs.push_back(Record(1, 1.3));
  tree.branches[3].leafs.push_back(Record(3, 1.0));
  tree.branches[3].leafs.push_back(Record(1, 1.0));
  tree.branches[3].leafs.push_back(Record(3, 1.1));
  tree.leafs.push_back(Record(1, 0.5));
 
  display_tree(tree);
 
  int key;
  scanf("%d", &key);
  return 0;
}
Yandex
Объявления
24.12.2010, 23:37     Разработать класс
Ответ Создать тему
Опции темы

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