Lua实现链表
用Lua描述一个链表的操作,包括:
1) 创建 清空
2) 往末端插入元素
3) 往头部插入元素
4) 删除指定元素(内容相同的)
5) 遍历
SList = {}
function SList:Create()local list = {len = 0,next = nil}--创建function list:AddHead(value)local node = {}node.data = = --list可以换做 = nodelist.len = list.len + 1end--头部添加function list:AddHead(value)local node = {}node.data = = = nodelist.len = list.len + 1end--尾部添加function list:AddLast(value)local tmp = ~= nil dolist = = {}data = = nillist = tmplist.len = list.len + 1end--清空function list:Clear( )local nodewhile list.len > 0 donode = while node~=nil donode = dnode = nillist.len = list.len - 1endend--删除指定元素function list:Dele(index)local i = indexlocal d,tlocal node = listwhile i > 1 do --找到要删除元素的前一个node = i = i - 1endd = datat = de.next = = tlist.len = list.len - 1return dend--遍历function list:Display()local node = local i = list.lenwhile i>0 doprint(node.data)node = i = i- 1endendreturn list
end调用方法:
local ls = SList:Create()
local ls1 = SList:Create()
ls:AddHead(1)
ls:AddHead(2)
ls:AddHead(3)
ls:AddHead(4)
ls:Dele(1)
ls:Display()
ls:Clear()ls1:AddLast(5)
ls1:AddLast(6)
ls1:AddLast(7)
ls1:Display()
ls1:Clear()
本文发布于:2024-02-05 01:41:25,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170721138961866.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |