Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Дерево 
:(
    Опции темы
Hanja
  Дата 9.11.2014, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 9.11.2014

Репутация: нет
Всего: нет



Имеется следующая задача:
Трассировка  программы,   не   содержащей   рекурсивных
вызовов  и  повторяющихся  имен  процедур,  распечатана в виде
списка выполняемых процедур. Процедура попадает в список, если
к ней произошло обращение из вызывающей процедуры либо возврат
управления из  вызванной  ей  процедуры.  Структура  программы
такова,  что  каждая вызываемая процедура вложена в вызывающую
ее процедуру.  Начало и  окончание  программы  должны  быть  в
головной процедуре.  Известен объем памяти,  который требуется
для  загрузки  каждой  процедуры.  При  выходе  из   процедуры
занимаемая ей память освобождается.  Построить и выдать дерево
вызовов процедур.  Определить размер памяти,  необходимый  для
работы  программы,  и цепочку вызовов,  требующую максимальной
памяти.

На данный момент у меня есть программа, которая создает небинарное дерево и выводит его на экран. Мне нужна помощь с переделкой этой программы для решения задачи

Код

#include <iostream>
 
#include <stdlib.h>
 
using namespace std;
 
//using namespace system
 
struct Tree {
 
int id; //уникальное значение
 
int level; //уровень в иерархии
 
int count_son; //количество сыновей
 
struct Tree** son; //массив указателей на сыновей
 
};
 
/*---------Создание дерева----------*/
 
struct Tree *createTree(struct Tree *node, int id, int level){
 
//node = new Tree;
 
node->id = id;
 
node->level = level;
 
cout << "\nKol. sons (" << (node->level) << "-" << (node->id) << "): ";
 
cin >> (node->count_son);
 
node->son = new struct Tree *[node->count_son];
 
 
 
level++;
 
for(int i = 0; i < ( node->count_son); i++){
 
node->son[i] = new Tree;
 
node->son[i]->id = id + i;
 
node->son[i]->level = level;
 
}
 
for(int i = 0; i < (node->count_son); i++)
 
createTree(node->son[i], id + i, level);
 
return node;
 
}
 
/*---------Вывод дерева----------*/
 
void printTree(struct Tree *node){
 
if(node){
 
for(int i = 0; i < (node->level); i++)
 
cout << "| ";
 
if(node->son != NULL)
 
cout << "[+]";
 
cout << "(" << (node->level) << "-" << (node->id) << ")" << endl;
 
if((node->count_son) != 0)
 
for(int i = 0; i < (node->count_son); i++)
 
printTree(node->son[i]);
 
}
 
}
 
 
 
int main()
 
{
 
Tree *root;
 
root = new Tree;
 
root = createTree(root, 0, 0);
 
printTree(root);
system("pause"); 
return 0;
 
 
}

PM MAIL   Вверх
xvr
Дата 10.11.2014, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 60
Всего: 223




 ! 
xvr
Для справки - кроспост тем запрещен правилами форума!


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0430 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.