0

我偶然发现了这个页面:在 AS3 中创建链接列表

由于 AS3.0 是一种脚本语言。我想知道如何在 AS3.0 中实现链表?指针(一种访问内存位置的方法)不是创建链表的强制要求。这最终使数据数组的性能更快?

4

2 回答 2

3

在 AS3 中你有对象引用,你没有指针,但是你可以以非常相似的方式使用引用来实现一个链表。链接列表(通常)的优点在于列表中的插入和删除(您不必像使用数组那样移动所有元素)。您仍然可以使用对象引用获得此好处。

注意:AS3 中的对象是通过引用传递的,原语是通过值传递的。

于 2013-03-02T19:05:43.087 回答
2

实际上,所有脚本语言都可以使用指针。

他们只是决定以不同的方式称呼它们(大多数时候他们称它们为“引用”)并隐藏管理内存分配和释放的复杂性(甚至可能性)。

话虽如此,在 ActionScript(或 JavaScript)中创建链表的最简单方法是

var node1 = {value: 1};
var node2 = {value: "foo"};
var node3 = {value: "bar"};

//of course this code should be localices within a separate class
//with some nice API
((node1.next = node2).next = node3).next = null;

//and then use like that e.g.
var n = node1;
while (n) {
    trace(n.value);
    n = n.next;
}
于 2013-03-04T10:12:23.130 回答