Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 26.03.2016, 14:29   #1 (permalink)
b_Buty
Новичок
 
Регистрация: 26.03.2016
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Отладка программы на С++

Написать программу на С++.
Дано бинарное дерево(заполняется с клавиатуры или из файла). Вывести значения всех вершин дерева в порядке обхода в ширину: вначале выводится корень, затем его потомки(слева направо), далее потомки второго уровня и тд.
Не могу правильно сделать обход((

#include <iostream>

using namespace std;

struct node
{
int data;
int lvl;
node *right, *left;
};

void Show(node *&MyTree)
{
if (MyTree != NULL)
{
if (MyTree->lvl == 0)
cout « MyTree->data « endl;
else
{
Show(MyTree->left);
Show(MyTree->right);
cout « endl;
}
}
}

void Create(int MyData, node *&MyTree, int level)
{
if (MyTree == NULL)
{
MyTree = new node;
MyTree->data = MyData;
MyTree->right = MyTree->left = NULL;
MyTree->lvl = level;
}
if (MyTree->left != NULL)
Create(MyData, MyTree->left, level+1);
else
{
MyTree->left = new node;
MyTree->left->left = MyTree->left->right = NULL;
MyTree->left->data = MyData;
MyTree->left->lvl = level;
}
if (MyTree->right != NULL)
Create(MyData, MyTree->right, level + 1);
else
{
MyTree->right = new node;
MyTree->right->left = MyTree->right->right = NULL;
MyTree->right->data = MyData;
MyTree->right->lvl = level;
}
}

void Del(node *&MyTree)
{
if (MyTree != NULL)
{
Del(MyTree->left);
Del(MyTree->right);
delete MyTree;
}
}

int main()
{
setlocale(LC_ALL, "rus");

node *Tree = NULL;
int *massiv, n;

cout « "Количество элементов:\t";
cin » n;
massiv = new int[n];
cout « "Введите элементы дерева:\n";
for (int i = 0; i < n; i++)
{
cin » massiv[i];
Create(massiv[i], Tree, 0);
}

system("cls");
cout « "Дерево в порядке обхода в ширину:\n";
Show(Tree);


Del(Tree);
delete[] massiv;
system("pause");
system("cls");
return 0;
}

Замечание:
Уважаемый участник, на будущее: в соответствии с нашими Правилами, названия тем типа "Помогите!", "Help!!!", "Нужна помощь" и т.п. НЕ ДОПУСКАЮТСЯ, а темы, так названные, подлежат удалению.

Модератор
b_Buty вне форума   Ответить с цитированием

Старый 26.03.2016, 14:29
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Аналогичные топики, которые своим содержанием должны быть вам полезны

Отладка локальной сети.
Отладка ноута через комп
Паскаль. Отладка программы.
Отладка программ в Visual C++
Отладка браузера

Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 16:41.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.