lua实现简单的单链表,链尾的插入以及元素的删除
List = {}
List.init = function( )
return {data=0, next=nil} --head->data record the length
end
List.insert_tail = function(l, val)
local node = {data=val, next=nil}
l.data = l.data + 1
--find last node
while l.next do
l = l.next
end
l.next = node
end
List.remove_item = function(l, val)
local sign = 0
local head = l
while l.next do
if l.next.data == val then --find prev node
sign = 1
break
end
l = l.next
end
if sign then
head.data = head.data - 1
l.next = l.next.next
end
end
List.print_list = function ( l )
while l.next do
l = l.next
print(l.data)
end
end
l = List.init()
List.insert_tail(l, 1)
List.insert_tail(l, 2)
List.insert_tail(l, 3)
print("size",l.data)
List.remove_item(l, 2)
print("size",l.data)
List.insert_tail(l, 5)
List.print_list(l)