| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > построение бинарного дерева определенной высоты |
| Автор: knopa 20.12.2005, 14:40 |
| Привет всем!Есть задача даны два числа:n-количество элементов в двоичном дереве и k-высота дерева.Пользователь вводит n и k.После чего формируется массив от 1 до n, те если n = 4 то массив 1 2 3 4!Мне нужно предложить такую последовательность чисел при которой высота дерева будет равна k!Те переформировать массив каким либо образом! Например n=4 k=4 формируем массив 1 2 3 4 на выходе должно получиться 1 3 2 4 Еще один примерчик : n=6 k=3 формируем массив 1 2 3 4 5 6 на выходе должно получиться 3 1 2 5 4 6 Если дерева не существует то нужно вывести невожможно постоить дерево! но как ето сделать я знаю. у меня есть идея алглоритма!Она состоит в следующем!Беру массив сторою из него дерево если высота равна k то вывожу и выхожу из проги,если нет то делаю перестановку массива например 1243 если высота равна k то вывожу и выхожу и тд. Итого у меня будет n! перестановок в худшем случае! Может есть более эффективный алгоритм??? Помогите чем сможете, подскажите идею алгоритма!!!! |
| Автор: Guest 20.12.2005, 15:19 |
| [censored33! Пожалуйста, соблюдайте элементарные правила приличия при общении на форуме] какое-то |
| Автор: knopa 21.12.2005, 01:02 |
| Да уж другого слова и не подберешь!!! |