Помогите с деревом

Тема в разделе "WASM.HEAP", создана пользователем osrootd, 26 апр 2009.

  1. osrootd

    osrootd New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2008
    Сообщения:
    1.086
    У меня просто мозг уже высох за последние сутки. Щас осталось дерево построить, но я уже не соображаю:)

    Пусть некоторая функция создает массив TreeArray[], количество элементов которого известно.
    TreeArray содержит объект ObjectTreeItem, у которого есть свойство INDEX (int) и Parent (int).
    Чтобы построить дерево, я написал такой код ( не ругайте сильно, я действительно сжег мозг )

    Код (Text):
    1.     public ObjectTreeItem getParentItem (ObjectTreeItem item)
    2.     {
    3.        
    4.    //На входе дали структуру.
    5.         //Извлекаем родителя
    6.        
    7.         Division div = (Division) item.getTreeObject(); // Это объект, который хранит данные о родителе
    8.        
    9.        ObjectTreeItem ParentItem=null; //Пока НИЧТО
    10.        
    11.         int i=0;
    12.        
    13.             for (i=0; i<TreeArray.length; i++)
    14.             {
    15.             ObjectTreeItem current = TreeArray[i];
    16.             Division d = (Division) current.getTreeObject();
    17.             if (d.dbindex==div.parent)
    18.             {
    19.                 ParentItem=current;
    20.             }
    21.            
    22.             }
    23.         return ParentItem;
    24.        
    25.     }
    26.    
    27.     public void createTreeA(){
    28.         /**
    29.          * Обходит дерево
    30.          **/
    31.         int i=0;
    32.        
    33.         for (i=0; i<TreeArray.length; i++)
    34.         {
    35.             //Извлекаем очередную структуру;
    36.             ObjectTreeItem item = TreeArray[i];
    37.             item.BROOT_CREATE();
    38.            
    39.        
    40.            
    41.             Division CD = (Division) item.getTreeObject();
    42.        
    43.                 //Если так, то проверяем, есть ли у нее родитель?
    44.                 ObjectTreeItem Parent = null;
    45.                 if ((Parent=getParentItem(item))!=null)
    46.                 {
    47.                     Parent.addItem(item);
    48.                     Parent.BROOT_CREATE();
    49.                 }
    50.                 tree.addItem(Parent);
    51.                item.BROOT_CREATE();
    52.            
    53.            
    54.         }
    55.         tree.BROOT_INIT();
    56.     }
    Что не так? Дерево вообще на экран не выводится.
    P.S.: BROOT_INIT - рисует дерево, BROOT_CREATE - рисует ветку ( т.е. эти функции просто вызывают toScreen(), но переопределяют paint(), они работают, проверял).