LINUX.ORG.RU
ФорумAdmin

связный список на перле


0

0

Нужно очень срочно написать связный список на перле. Самый стандартный вариант, как на си и паскале, как бы странно это ни казалось. Но не получается:(( Нужно просто в цикле добавлять туда элементы.
Написал так:

$top={};
while (1)
{
# $a=<STDIN>;
if (($a=<STDIN>)==999) {last}
else
{

$list{'num'}=$a;
$list{'next'}=$top;
$q=\%list;
$top=$q;
}

Что неправильно??
Спасибо.
chipolinous@yahoo.com

anonymous

require "/path/to/list_package";

my $this = list->new();
my @obj = CGI::param();
# вот добавим массив в список
$this->addToTop(\@obj);

# ==================================================
#САм пакет...
package list;

sub new
{
my $this = {};
@{$this->{LIST}} = ();
$this->{_MAX_SIZE_} = 255; #максимум
$this->{_FLOOR_} = 0; # минимум
bless($this);
return($this);
}

sub addToTop
{ # добавляеv в конец списка
my($this, $ptrOfObject) = @_;
$this->addByNum(-1,$ptrOfObject);
}
sub addToBottom
{ # добавляеv в начало списка
my($this, $ptrOfObject) = @_;
$this->addByNum(0,$ptrOfObject);
}
sub addByNum
{ # добавляеv в любое место списка
my($this, $num, $ptrOfObject) = @_;
if(!$num) # добавляем в начало
{
unshift(@{$this->{LIST}}, $ptrOfObject);
}
elsif($num < 0)
{
push(@{$this->{LIST}}, $ptrOfObject);
}
else
{
splice(@{$this->{LIST}},$num,0,$ptrOfObject);
}
}

1;
# ==================================================
Думаю, что извлечение объекта теперь напишите сами.
:)

Ну вот и все. А вообще функционально писать не рекомендую.
И еще, если приводите куски кода, то приводите логически связанную часть, а не кусок, вызывающий рвотный рефлекс от незаконченности кода.


Utandr@e-mail.ru
http://uwg.h1.ru/

Utandr
()

А на кой хрен нужен такой изврат ?? Чем массив не угодил ???

LamerOk ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.