int y, int = 1, int m = 1, int _x = 0, int _y = 0); * binkey (int num);
};
Кожен елемент - вузол дерева є структурою:
struct BH
{* BH_data; collData; * Left; * Right; ();
};
3.2 Реалізація функцій структури
При внесенні даних у структуру, спочатку генерується В«pseudokeyВ», після чого алгоритм перевіряє, чи існує перший елемент дерева. Якщо дані до цього не вводилися, то виділяється пам'ять під один вузол дерева і поточне значення поміщається в даний вузол. Якщо ж у структурі вже є елементи, то дані додаються в найближчий вільний елемент, шлях до якого відповідає В«pseudokeyВ». p align="justify"> Функція, що реалізує додавання елемента:
int Past (BH * root, String * data, int coll, int pos)
{* p = Key_Gen (data, coll); (root == NULL)
{root = new (BH); (root, data, coll, pos); 1;
}
{(root-> BH_data == NULL
&& root-> Left == NULL
&& root-> Right == NULL)
{root-> BH_data = data;> collData = coll; 1;
}
{if (root-> BH_data == NULL)
{(p [pos] == '0 ')
{(root-> Right == NULL)
{* tmp = new BH;> Right = tmp;> Right-> BH_data = data;> Right-> collData = coll; 1;
}
{(root-> Right, data, coll, + + pos); 1;
}
} (p [pos] == '1 ')
{(root-> Left == NULL)
{* tmp = new BH;> Left = tmp;> Left-> BH_data = data;> Left-> collData = coll; 1;
}
{(root-> Left, data, coll, + + pos); 1;
}
}
} (root-> BH_data! = NULL)
{(* root-> BH_data == * data) return 1; (p [pos] == '0 ')
{* tmp = new BH;> Right = tmp;> Right-> BH_data = data;> Right-> collData = coll;
} (p [pos] == '1 ')
{* tmp = new BH;> Left = tmp;> Left-> BH_data = data;> Left-> collData = coll;
} dd = root-> collData; * ddd = new String;
return 1;
}
}
}
}
При внесенні даних автоматично виконується функція промальовування дерева:
void paintTree (TImage * img, int x, int y, int _x = 0, int _y = 0)
;}