Lua table 扩展数组、链表

3人阅读 评论(0) 收藏 举报
分类:

数组
特点:通过下标访问。

lua table直接下标访问就可以实现数组

例程

tab = {2, 3, 4, 5}
print(tab[1], tab[2], tab[3], tab[4])
运行结果

2 3 4 5

例程

tab = {{2, 3, 4, 5},{9,8,7}}
print(tab[1][1], tab[1][2], tab[1][3], tab[1][4])
print(tab[2][1], tab[2][2], tab[2][3], tab[2][4])

运行结果
2 3 4 5
9 8 7 nil

链表

特点:很多个节点组成

例程

tab = {2,3,4,5,6}
n = table.getn(tab)	--返回元素个数

list = nil
for i=1, n do
	list = {val = tab[i], next = list}
end

print(list.val, list.next.val, list.next.next.val)

运行结果
6 5 4

例程

tab = {2,3,4,5,6}
n = table.getn(tab)	--返回元素个数

list = nil
for i=1, n do
	list = {val = tab[i], next = list}
end

function listIterator(tb, node)
	if node == nil then
		return tb
	else
		return node.next
	end
end

function ipairsList(tb)
	return listIterator, tb, nil
end

-- 删除节点
function delNode(list, val)
	for node in ipairsList(list) do
		if node.next ~= nil and node.next.val == val then
			local tmp = node.next	-- 保存下一个节点
			node.next = node.next.next
			tmp = nil	-- 删除下一节点
		end
	end
end

delNode(list, 3)

-- 遍历链表
for node in ipairsList(list) do
	print(node.val)
end

运行结果

6
5
4
2

查看评论

Lua编程笔录--Lua初识及语法四(数组,迭代器,table表)

前言:前面的知识点可以参考  Lua编程笔录--Lua初识及语法一(注释,变量命名,全局/局部变量,数据类型) http://blog.csdn.net/adambieber/article/deta...
  • AdamBieber
  • AdamBieber
  • 2016-11-22 10:58:27
  • 1014

lua学习笔记15:table数组逆序

数组的逆序,只能用于数组,不能用于哈希表 function reverseTable(tab) local tmp = {} for i = 1, #tab do local key...
  • xufeng0991
  • xufeng0991
  • 2015-02-04 21:08:24
  • 4237

lua 之table方法concat

table  一部分的table函数只对其数组部分产生影响, 而另一部分则对整个table均产生影响. 下面会分开说明.  table.concat(table, sep,  start,...
  • ganpengjin1
  • ganpengjin1
  • 2013-11-15 14:03:36
  • 19531

lua------遍历数组和table

方法一,可以用for来遍历: do table_week = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thu...
  • u012896330
  • u012896330
  • 2016-09-13 17:43:06
  • 1505

如何判断lua是不是一个纯数组类的table

这种方式只用遍历table一次,效果不错
  • yuanfengyun
  • yuanfengyun
  • 2016-05-05 14:25:08
  • 3324

lua 之如何便利数组和table

方法一,可以用for来遍历: do table_week = { "w", "e", "r", "t", "y", "u", "i", } for i = 1, #table_w...
  • ganpengjin1
  • ganpengjin1
  • 2014-02-25 01:00:49
  • 15766

如何在lua中打印一个数组(table)

主体思路:通过递归遍历整个table元素输出 local function ZCLOG(Lua_table) -- do -- return -- end ...
  • HJJxiaoxiaobai
  • HJJxiaoxiaobai
  • 2015-10-09 13:51:50
  • 1971

Lua 打乱数组顺序

function shuffle(t) if type(t)~="table" then return end local l=#t local tab...
  • w18756901575
  • w18756901575
  • 2017-07-11 16:21:39
  • 1601

lua-将数据插入table,并设置Key值

给定如下数据 {“aaa”, 25, "策划"}, {“bbb”, 24, "程序"}, {“ccc”, 26, "测试"} 这些数据用LUA转化成 { {“aaa”, 25, "策划"}, {“b...
  • SilScorige
  • SilScorige
  • 2012-07-18 16:44:29
  • 29149

浅析Lua中table的遍历和删除(转)

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://rangercyh.blog.51cto.com/1444712/1032925 ...
  • zxcvbnm0014
  • zxcvbnm0014
  • 2015-01-07 11:27:36
  • 6651
    个人资料
    持之以恒
    等级:
    访问量: 735
    积分: 577
    排名: 9万+
    文章存档
    最新评论