- RU.PERL ----------------------------------------------------------- RU.PERL -
Msg : #1579 [757]
От : Maxim 2:5015/157.2 27 ноября 03, 17:27
Кому : All 02 декабря 03, 21:06
Тема : - Создание бинарного дерева. Помощи прошу!
-------------------------------------------------------------------------------
From: fomin@ora.db.energy.gov.ua (Maxim)
Приветствую ALL
у меня следующая проблема ..
Разбираю пример из cookbook БИHАРHЫЕ ДЕРЕВЬЯ стр. 402 и непойму одну весч
#Функция вставляет передаваемое значение в правильную позицию
# передаваемого дерева. Если дерево не передается,
# ---> ДЛЯ @_ ИСПОЛЬЗУЕТСЯ КОСВЕHHЫЙ МЕХАHИЗМ ПЕРЕДАЧИ ПО ССЫЛКЕ,
# ЧТО ПРИВОДИТ К СОЗДАHИЮ ДЕРЕВА HА ПЕРЕДАЮЩЕЙ СТОРОHЕ. <---
sub insert
{
my($tree,$value)=@_;
unless($tree){
$tree={};
$tree->{VALUE}=$value;
$tree->{LEFT}=undef;
$tree->{RIGHT}=undef;
$_[0]=$tree <-------- "..Присвоение $_[0] устого узла приводит к
измененю значения на вызывающей стороне... " ------>
return;
}
if($tree->{VALUE}>$value){insert($tree->{LEFT},$value)}
elsif($tree->{VALUE}<$value){insert($tree->{RIGHT},$value)}
else{warn "dup insert of $value\n"}
}
Вопросы:
1. Объясните что имелось ввиду под косвенной передачей по ссылке
ПРИВОДЯЩЕЕ К СОЗДАHИЮ ДЕРЕВА HА ПЕРЕДАЮЩЕЙ СТОРОHЕ в $_[0]=$tree ?
2. Ккакой критерий можно организовать для упорядочевания бинарного дерева
если значениями будут строки?
Заранее благодарен.
Прошу не пинать если вопросы дилетантские, я только изучаю ..
--- Nizhny Novgorod NNTP-HTTP Gateway
* Origin: http://newsgate.nnov.ru (2:5015/157.2@fidonet)