Lua中的数据结构
1 数组:(lua习惯数组从1开始)
a={}
for i=, do
a[i]=
end
2 阵和多维数组
:
mt={}//新建一个表,表元素为表
for i=,N do
mt[i]={}//新建一个表,里面的表元素为值
for j=,M do
mt[i][j]=
end
end
:
mt={}//新建一个表,表元素为值(注意起始地址是1*M+1,不再是1开始了)
for i=,N do
for j=,M do
mt[i*M+j]=
end
end
!:注意在表中没有被赋值的部分都是nil无效值,相当于不存在
3 链表:
每个结点代表一个table,每个table两个域:值和指针
创建
list=nil
for line in io.lines() do
list={next=list,value=line}
end
打印
l=list
while l do
print(l.value)
l=l.next
end
4 队列(少量数据时可以使用table库提供的insert和remove来实现队列)
首先认识这个表:
list={first=0,last=-1,1,2,3,4}
print(list[1]) -->1
print(list.first)-->0//注意这里结合和record初始化方式但是访问方式独立
创建一个队列:
list={}
function list.new()
return {start=,end=-}
end
function list.pushleft(list,value)
local start=list.start-
list.start=start
list[start]=value
end
function list.pushright(list,value)
local end=list.end+
list.end=end
list[end]=value
end
function list.popleft(list)
local start=list.start
if start>list.end then error("list is empty") end
local value =list[start]
list[start]=nil
list.first=first+
return value
end
function list.popright(list)
local end=list.end
if end<list.start then error("list is empty") end
local value=list[end]
list[end]=nil
list.end=end-
return value
end
使用:
newqueue=list.new()
for i=, do
list.pushright(newqueue,i)
end
for m=, do
print(newqueue[m])
end
Lua中的数据结构的更多相关文章
- Lua中使用table实现的其它5种数据结构
Lua中使用table实现的其它5种数据结构 lua中的table不是一种简单的数据结构,它可以作为其他数据结构的基础,如:数组,记录,链表,队列等都可以用它来表示. 1.数组 在lua中,table ...
- Lua虚拟机中的数据结构与栈
Lua虚拟机中的数据结构与栈 来源 https://blog.csdn.net/zry112233/article/details/80828327 由上一篇文章可知解释器分析Lua文件之后生成Pro ...
- Lua中的常用函数库汇总
lua库函数 这些函数都是Lua编程语言的一部分, 点击这里了解更多. assert(value) - 检查一个值是否为非nil, 若不是则(如果在wow.exe打开调试命令)显示对话框以及输出错误调 ...
- [译] Closures in Lua - Lua中的闭包
原文:(PDF) . 摘要 一等(first-class)函数是一种非常强大的语言结构,并且是函数式语言的基础特性.少数过程式语言由于其基于栈的实现,也支持一等函数.本文讨论了Lua 5.x用于实现一 ...
- Lua常用的数据结构表示
1.矩阵 Lua中有两种表示矩阵的方法,一是“数组的数组”.也就是说,table的每个元素是另一个table.例如,可以使用下面代码创建一个n行m列的矩阵:mt = {} -- cr ...
- 【游戏开发】在Lua中实现面向对象特性——模拟类、继承、多态
一.简介 Lua是一门非常强大.非常灵活的脚本语言,自它从发明以来,无数的游戏使用了Lua作为开发语言.但是作为一款脚本语言,Lua也有着自己的不足,那就是它本身并没有提供面向对象的特性,而游戏开发是 ...
- Lua中的环境概念
[前言] Lua将其所有的全局变量保存在一个常规的table中,这个table称为“环境”.这种组织结构的优点在于,其一,不需要再为全局变量创造一种新的数据结构,因此简化了Lua的内部实现:另一个优点 ...
- [转][译] Closures in Lua - Lua中的闭包
http://www.cnblogs.com/plodsoft/p/5900270.html?utm_source=tuicool&utm_medium=referral 原文:(PDF) . ...
- Lua中闭包详解 来自RingOfTheC[ring.of.the.c@gmail.com]
这些东西是平时遇到的, 觉得有一定的价值, 所以记录下来, 以后遇到类似的问题可以查阅, 同时分享出来也能方便需要的人, 转载请注明来自RingOfTheC[ring.of.the.c@gmail.c ...
随机推荐
- 数据库字段值为null利用setInc方法无法直接写入
1.数据库字段值为null利用setInc方法无法直接写入,先判断是否为空,再写入. if($points->add($dataList)){ $user=M('cuser'); $null=$ ...
- nodejs的socket.io学习笔记
socket.io学习笔记 1.服务器信息传输: 2.不分组,数据传输: 3.分组数据传输: 4.Socket.io难点大放送(暂时没有搞定): 服务器信息传输 1. // send to curre ...
- javascript检查数据中是否存在相同的元素
这里是两个用于数组中查找重复元素的demo,可以看看啦 <!DOCTYPE html><html lang="en"><head> <me ...
- ElementUI组件库常见方法及问题汇总(持续更新)
本文主要介绍在使用ElementUI组件库的时候,常遇见的问题及使用到的方法,汇总记录便于查找. 1.表单 阻止表单的默认提交 <!-- @submit.native.prevent --> ...
- bootstrap-datepicker汉化
bootstrap-datepicker 是一个非常优秀的时间选择插件,默认是英文显示日期的,通过下面几个小修改让其支持默认中文 1.首先将 bootstrap-datepicker.js 另存为 u ...
- echarts 表格与 div 之间 空白的设置
一. options 图表选项,包含图表实例任何可配置选项: 公共选项 , 组件选项 , 数据选项 {Object} grid 二. grid 直角坐标系内绘图网格 名称 默认值 描述 {number ...
- canvas合成图片 圣诞节新技能戴帽
<!doctype html><html><head><meta charset="utf-8"><title>Html ...
- 项目经验:GIS<MapWinGIS>建模第四天
实现了查询,与定位功能
- C++中精确到小数点后任意位
#include <iostream> #include <iomanip> //用setprecision(n)设置精度,其中n表示精确到小数点后n位 using names ...
- Java常用开发组件介绍
1.Lombok的使用 http://www.cnblogs.com/ywqbj/p/5711691.html 2.Guava的使用 http://www.yiibai.com/guava/