|
|
|
|
|
для: Trianon (...)
(28.06.2009 в 09:21)
| | Но тут, по моему, проходит только первый уровень. И как вообще может вывестись "--" по данному алгоритму я не вижу
и массив не соответствует выводимому | |
|
|
|
|
автор: Trianon (...) (28.06.2009 в 09:21) |
|
|
для: Quies
(23.06.2009 в 11:31)
| | проблема в некорректном вызове,
и в нулевом элементе, который невесть с чего является родителем самому себе.
int vtree(int parent)
{
static int array[]={0,0,0,0,0,1,4,3,6,6,7,7,4,3,5,8,9,11},
size = sizeof(array)/sizeof(array[0]);
for(int x=1; x<size; x++)
if(array[x]==parent)
cout << "-" << x <<endl,
vtree(x);
}
|
| |
|
|
|
|
|
|
|
для: Quies
(24.06.2009 в 11:59)
| | ну пробуй, но я не вижу по алгоритму, как оно дальше х=0 сдвинется | |
|
|
|
|
|
|
|
для: GeorgeIV
(23.06.2009 в 17:42)
| | Да, нет он обходит, по крайне мере первую ветку нормально, но не может во время затормозится- входит в бесконечный цикл. Причина ошибки похоже не в этом.
Связь должна быть такая: у переведённого массива есть ключи и значения. Под ключами собственно ключ элемента, под значениями ссылка на родительский элемент. Из этого и нужно построить дерево. | |
|
|
|
|
|
|
|
для: Quies
(23.06.2009 в 11:31)
| | естественно, у тебя вседа array[0] = 0 и parent=0 и дальше оно никогда не сдвинется
и вообще непонятна связь приведенного массива и желаемого результата | |
|
|
|
|
|
|
| Помогите с программой.
Ни как не получается сделать рекурсивный вывод, программа входит в бесконечный цикл.
#include <cstdlib>
#include <iostream>
using namespace std;
int vtree(int parent)
{
int array[]={0,0,0,0,0,1,4,3,6,6,7,7,4,3,5,8,9,11};
int size = sizeof(array)/sizeof(array[0]);
for(int x=0;x<size;x++){
if(array[x]==parent) {
cout << "-" << x <<endl;
vtree(array[x]);
}
}
return 0;
}
int main(int argc, char *argv[])
{
cout << "-- 0 --" << endl;
vtree(0);
int paus;
cin >> paus;
return 0;
}
|
Нужно вывести дерево элементов массива. Значение массива, есть ссылка на родительский элемент.
должно получится нечто, такое:
-- 0 --
-1
--6
---9
----17
---10
-2
-3
--8
---16
--14
-4
--13
--7
---11
----18
---12
-5
--15 | |
|
|
|
|