Lua学习笔记Day4-Lua实现链表
2016-05-16 22:58
423 查看
Lua学习笔记Day4-Lua实现链表
Lua学习笔记Day4-Lua实现链表目录
Lua实现链表
目录
Lua实现链表Lua实现链表
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 = value node.next = list.next --list可以换做self list.next = node list.len = list.len + 1 end --头部添加 function list:AddHead(value) local node = {} node.data = value node.next = list.next list.next = node list.len = list.len + 1 end --尾部添加 function list:AddLast(value) local tmp = list while list.next ~= nil do list = list.next end list.next = {} list.next.data = value list.next.next = nil list = tmp list.len = list.len + 1 end --清空 function list:Clear( ) local node while list.len > 0 do node = list.next while node~=nil do node = node.next end node = nil list.len = list.len - 1 end end --删除指定元素 function list:Dele(index) local i = index local d,t local node = list while i > 1 do --找到要删除元素的前一个 node = node.next i = i - 1 end d = node.next.data t = node.next.next node.next = nil node.next = t list.len = list.len - 1 return d end --遍历 function list:Display() local node = list.next local i = list.len while i>0 do print(node.data) node = node.next i = i- 1 end end return 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()
相关文章推荐
- [C/C++]反转链表
- 文件遍历排序函数
- 详解Lua中的表的概念及其相关操作方法
- C#实现基于链表的内存记事本实例
- Lua编程示例(二):面向对象、metatable对表进行扩展
- 把Lua编译进nginx步骤方法
- Lua脚本自动生成APK包
- Lua中的元表(metatable)、元方法(metamethod)详解
- Lua中的metatable介绍
- Lua中ipair和pair的区别
- Lua中的函数精讲笔记
- 浅谈Lua的面向对象特性
- 详解Lua中的变量相关知识点
- Lua脚本语言入门笔记
- Lua脚本调用外部脚本
- Lua 学习笔记之C API 遍历 Table实现代码
- 详解Lua中的if语句的使用方法
- Lua中调用函数使用点号和冒号的区别
- Lua中的闭合函数、非全局函数与函数的尾调用详解
- Lua中强大的元方法__index详解