Thread Verkettete Listen (46 answers)
Opened by DarKo87 at 2012-11-21 07:46

Raubtier
 2012-11-23 00:08
#163537 #163537
User since
2012-05-04
1054 Artikel
BenutzerIn

user image
Schaue dir bitte einmal den C-Befehl realloc an! Klappt das nicht, muss man halt umkopieren. Man macht das Array aber in der Regel größer als die Anzahl der Elemente, sodass man ohne Größenänderung noch was einfügen kann. Erst wenn die Maximalgröße überschritten würde, muss man das Array größer machen.

Quote
Vermutlich dürfte der Perl-Datentyp "Liste" im Perl-Interpreter in C als "verkettete Liste" implementiert sein.


Nein, das wäre ja äußerst ineffizient. Schon mal überlegt, was dann bei $arr[1000] alles passieren müsste? Alternativ kannst du in av.h bzw. av.c nachschauen - da wirst du das hier finden:
Code: (dl )
SV**	xav_alloc;	/* pointer to beginning of C array of SVs */

Selbstverständlich handelt es sich um arrays!

Außerdem verwirrst du, indem du my @l eine Liste nennst. @l ist ein Array. Eine Liste in Perl ist etwas wie (1,2,3).
perldoc -q 'difference between a list and an array'

Quote
http://www.perltutorial.org/perl-linked-list.aspx

zeigt nun gerade einen fortgeschrittenen Sonderfall. Für Leute, die Perl lernen wollen, halte ich es eher für kontraproduktiv, sich damit zu beschäftigen.


Es ist auch deswegen kontraproduktiv, weil es nicht einmal strict und warnings nutzt. Nimm also lieber eines der guten Tutorials, die von der bereits von pq genannten Website http://perl-tutorial.org/ gelistet werden.
Last edited: 2012-11-23 00:14:27 +0100 (CET)

View full thread Verkettete Listen