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互不影响
代码:
题目: 用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()
相关文章推荐
- 使用lua语言实现循环链表
- Lua学习笔记Day4-Lua实现链表
- lua链表的简单实现
- 使用Lua实现链表的各种操作
- lua之链表的实现
- 数据结构 链表的lua实现 仿照C++中list 实现
- Lua中使用table实现的其它5种数据结构(数组、链表、队列、集合和包、StringBuild)
- 数据结构 链表的lua实现 仿照C++中list 实现
- Lua实现链表
- Java学习笔记——链表的泛型实现和序列化读写
- 使用 JavaScript 实现链表
- C++实现顺序表、单链表、双链表
- Java实现-将二叉树拆成链表
- 线性表的2种实现方式:数组和链表
- JAVA链表中迭代器的实现
- 链表的C语言实现(范例)
- 栈用链表实现
- 合并两个排序的链表(Java实现)
- [转]Lua中的面向对象实现方法
- 带环单链表及链表相交问题的分析及代码实现