20 / 20 / 1
Регистрация: 03.01.2013
Сообщений: 184
|
|
1 | |
Цикл для дерева27.02.2013, 10:51. Показов 1636. Ответов 5
Метки нет (Все метки)
Доброго времени суток.
Я начал изучать pl/sql для Oracle, по работе необходимо стало. Начну с легкого описания: --Есть таблица, TREE(id, name, child, salary) --Надо заполнить её порядком, ну около, 50.000 записей. Собственно в чем сложность или моё не понимание, как заполнить её через цикл, но при таких условиях, что имеется "некое кол-во правящих", у них есть свои в подчинении "начальники отделов", у "начальников" есть "нижестоящие работяги" и так ниже и ниже. Условия такие, что случайным образом должно быть сгенерирование число вложений.
0
|
27.02.2013, 10:51 | |
Ответы с готовыми решениями:
5
В рабочей программе добавить для дерева бинарного поиска нахождение отрицательных значений узлов дерева Биологический цикл жизни дерева проиллюстрировать жизненный цикл дерева Для каждого бинарного дерева выполнить преобразование дерева в список, результат вывести в виде списка списков |
20 / 20 / 1
Регистрация: 03.01.2013
Сообщений: 184
|
||||||
27.02.2013, 20:50 [ТС] | 3 | |||||
ну, я скорее всего не "грамотно" обозвал, это по иди id parent, по которому определяется должно, является ли он начальником( к примеру директором - null ) или он рядовой подчиненный с значением = 20, где уже это к примеру "уборщица".
Добавлено через 13 минут ну, я скорее всего не "грамотно" обозвал, это по иди id parent, по которому определяется должно, является ли он начальником( к примеру директором - null ) или он рядовой подчиненный с значением = 20, где уже это к примеру "уборщица". Собственно мне надо понять как реализовать в цикле заполнение дерева.
Вот что надо написать/добавить чтоб CHILD_EMP адекватно реагировало на заполнение при условии что оно является внешним ключом на ID_EMP
0
|
27.02.2013, 21:38 | 4 |
например так:
Генерируете случайное число от 0 до 10 (dbms_random.value(0, 10)). Если получилось число из диапазона 0-1 (добавление корня) - присваиваете CHILD_EMP := null; Если получилось число из диапазона 5-10 (добавление соседа) - присваиваете CHILD_EMP := prevParent; Где prevParent - значение CHILD_EMP из предыдущей итерации цикла. Если получилось число из диапазона 2-4 (добавление потомка) - присваиваете CHILD_EMP := i;
0
|
20 / 20 / 1
Регистрация: 03.01.2013
Сообщений: 184
|
|
27.02.2013, 22:20 [ТС] | 5 |
т.е. вы хотите сказать, текущую I = I - 1; так как предыдущую итерацию я так понял.
0
|
28.02.2013, 07:22 | 6 | |||||
Имеется ввиду значение CHILD_EMP из предыдущей итерации.
Если на предыдущей итерации добавляли корень, то prevParent = null. Если на предыдущей итерации добавляли потомка, то i-1. Если на предыдущей итерации добавляли соседа, то значение CHILD_EMP не 2 итерации назад. Просто запоминайте CHILD_EMP в другой переменной в конце итерации.
0
|
28.02.2013, 07:22 | |
28.02.2013, 07:22 | |
Помогаю со студенческими работами здесь
6
Операции над бинарными деревьями: построение дерева, обход дерева, вставка и удаление элемента дерева Создать программу по всем 3 видам циклов...цикл с параметром,цикл с условием,цикл,и цикл с предусловием... Цикл: Используя цикл while, выведите на экран для числа 2 его степени от 0 до 20 Нормально ли для системы один и тот же цикл запускать цикл 20 раз в секунду с итерацией до 1000 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |