我写的一个Javascript链表

function Entry(next, data);
{
this.next = next
this.data = data
}

function Iterator(node);
{
this.cousor = node
this.hasNext = function ();
{
return (this.cousor.next != null);;
}
this.next = function ();
{
var rt = this.cousor.next
this.cousor = this.cousor.next
return rt.data
}
}

function LinkedList();
{
this.head = new Entry(null, null);
this.size = function ();
{
var size = 0
if (this.head == null);
{
return size
}

var p = this.head.next
for(; p!=null; p = p.next);
size++;
return size;
}

this.clear = function ();
{
this.head = null
}

this.getNode = function (idx);
{
var pos = -1;
var p = this.head
while (p != null && pos < idx); {
p = p.next;
pos ++;
}
return p;
}

this.get = function (idx);
{
return this.getNode(idx);.data
}

this.add = function (data);
{
this.insert(this.size();, data);
}

this.insert = function (idx, data);
{
var p = this.getNode(idx-1);; /*注意查询idx-1*/
if (p == null);{
return
}
var node = new Entry(p.next, data);
p.next = node
}

this.remove = function (idx);
{
var prenode = this.getNode(idx - 1);
var node = this.getNode(idx);
if (prenode == null || node == null);
{
return null
}
prenode.next = node.next
return node.data
}

this.iterator = function ();
{
return new Iterator(this.head);
}

this.swap = function (a, b);
{
var av = this.getNode(a);
var bv = this.getNode(b);
var tmp = av.data
av.data = bv.data
bv.data = tmp
}
}


范例:


<script>
function Item(name, value);
{
this.name = name
this.value = value
}

function sample();
{
var item1 = new Item("a", "1");
var item2 = new Item("b", "2");
var list = new LinkedList();;
list.add(item1);
list.add(item2);

for(var itr = list.iterator();; itr.hasNext();; );
{
var itm = itr.next();;
alert("name:" + itm.name + "\t value:" + itm.value);
}

}
</script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值