Dan*_*lan 3 perl data-structures
在C中,您可以创建自己的结构,并从那里创建一个链接列表,其中结构中的记录将指向下一个记录以及前一个记录.
当然Perl必须有办法做到这一点?很想知道如何.
谢谢
您不会看到Perl程序员创建链接列表之类的东西.您可能希望阅读perllol和perldsc以了解更典型的"Perlish"数据结构.
话虽如此,您可以查看LinkedList :: Single的源代码,看看在Perl中编写单链表的一种方法.
您可以基本上以与在C中执行此操作相同的方式执行此操作,但使用引用而不是指针和散列而不是结构.
但是在Perl中通常你没有必要,因为Perl的内置数组非常智能和快速.他们自动增长,并且已经做什么最链表可以像添加与删除任意元素splice用,添加和从正面拆卸和回阵列中pop,push,shift,和unshift.而且,与链表不同,您可以获得O(1)随机访问.有关更多信息,请参阅perlfunc.
你也不这样做,因为在Perl中编写自己的数据结构往往很慢.Perl数组是用C语言编写的,但是你的链表将用更慢的Perl编写并消耗更多的内存.虽然算法可能更有效,但实现速度很慢.在计算机科学术语中,常数将非常大.最终结果是专门的数据结构,如链接列表和树只有在你开始涉及数十万或数百万个元素时才有意义.
您的另一个选择是使用用C编写的链接列表库.您可以使用称为XS的东西来利用C库,它充当C代码和Perl代码之间的桥梁.但这并不是最容易使用的东西.