Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Прямой обход бинарного дерева 
V
    Опции темы
kuller
Дата 29.12.2008, 14:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Здравствуйте!!!

Бинарное дерево заданно массивом:
                5
        3               7
    1      4       6       8

массив:
индекс  0 1 2 3 4 5 6

ячейка  5 3 7 1 4 6 8 

Как раелизовать на этом массиве прямой обход бинарного дерева???

результат обхода по идее:

        5 3 1 4 7 6 8 

Заранее спасибо!!!
PM MAIL   Вверх
Partizan
Дата 29.12.2008, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

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



kuller, 

Код

        int[] GetTreeValues(int[] tree, int startIndex)
        {
            if (startIndex >= tree.Length)
                return null;

            List<int> values = new List<int>();
            values.Add(tree[startIndex]);

            for (int i = 1; i <= 2; i++)
            {
                int childIndex = (int)2 * startIndex + i;
                if (childIndex < tree.Length)
                {
                    int[] child_vals = GetTreeValues(tree, childIndex);
                    if (child_vals != null)
                    {
                        foreach (int value in child_vals)
                        {
                            values.Add(value);
                        }
                    }
                }
            }

            return values.ToArray();
        }

//Пример использования:
int[] arr = this.GetTreeValues(new int[] { 5, 3, 7, 1, 4, 6, 8 }, 0);



Это сообщение отредактировал(а) Partizan - 29.12.2008, 22:00


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
kuller
Дата 29.12.2008, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Partizan, спасибо!
буду разбираться!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




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


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

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