您的位置:首页 > 编程语言 > Lua

lua链表的实现

2015-04-20 20:56 183 查看
摘要: 刚开始接触lua,副组长给我出了道关于链表实现的题目。完成的不怎么样吧,我把题目要求和我写的代码丢出来看一下,希望不足之处有大婶给指点下。

题目: 用lua 完成链表的基本操作

1. 建表

2. 尾部插入

3. 头部插入

4. 删除结点(与输入值相同的结点)

5. 遍历

要求实现: ls1:Creat()

ls1:pushback()

ls1:pushhead()

ls2:Creat()

ls2:pushback()

其中,ls1和ls2互不影响

代码:

CList = { data = 0, next = nil}

function CList : Creat()

local l_newnode= {}
setmetatable(l_newnode, self)
self.__index = self

return l_newnode
end

function CList : pushback(data)

local newnode = {}
setmetatable(newnode, CList)
newnode.data = data
newnode.next = nil
local l_inputkey = self

while l_inputkey.next do
l_inputkey = l_inputkey.next
end
l_inputkey.next = newnode

return self

end

function CList : pushhead(data)

local newnode = {}
setmetatable(newnode, CList)
newnode.data = data
newnode.next = self.next
self.next = newnode

return self
end

function CList : erasenode(data)

local eranode = self.next
local era_head = self
while eranode do
if eranode.data == data then
eranode = eranode.next
era_head.next = nil
era_head.next = l
end
era_head = eranode
eranode = eranode.next
end

end

function CList : display()

printnode = self.next
while printnode do
print(printnode.data)
printnode = printnode.next
end
print("= = display OK = =")

end

local ls1 = CList : Creat()
ls1:pushback(15)
ls1:pushhead(10)
ls1:display()
local ls2 = CList : Creat()
ls2:pushback(20)
ls2:pushhead(17)
ls2:display()
ls1:pushback(25)
ls1:display()
ls2:pushback(38)
ls2:display()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息