Lua编程示例(三):稀疏表、双端队列、格式化输出、表和循环表的格式化输出(lua编写软件)原创

随心笔谈4个月前更新 admin
204 00
🌐 经济型:买域名、轻量云服务器、用途:游戏 网站等 《腾讯云》特点:特价机便宜 适合初学者用 点我优惠购买
🚀 拓展型:买域名、轻量云服务器、用途:游戏 网站等 《阿里云》特点:中档服务器便宜 域名备案事多 点我优惠购买
🛡️ 稳定型:买域名、轻量云服务器、用途:游戏 网站等 《西部数码》 特点:比上两家略贵但是稳定性超好事也少 点我优惠购买

文章摘要

这篇文章介绍了如何使用表和指针来实现一个双端队列(Deque)的数据结构。文章首先通过循环表的共享子表示例,展示了表的引用和修改操作。接着,详细描述了双端队列的实现方法,包括`pushleft`、`pushright`、`popleft`和`popright`等基本操作。通过一系列代码示例,展示了如何在双端队列中实现双向插入和删除操作,并通过`display`函数输出队列元素。文章还提到了在操作过程中需要注意的错误提示,例如队列为空时的错误处理。整体内容简明扼要,重点突出双端队列的实现方法及其相关操作。


a={}
for i=1,10 do
a[i]={}
for j=0,10 do
if(i%2==0) then
a[i][j]=0
end
end
end

print(a[9][10])
print(a[10][10])
print()

–双端队列

List={}

function List.new()
return {first=0,last=-1}
end

function List.pushleft(list,value)
local first=list.first-1
list[first]=value
list.first=first
end

function List.pushright(list,value)
local last=list.last+1
list[last]=value
list.last=last
end

function List.popleft(list)
local first=list.first
if(first>list.last) then
error(“list is empty”)
end
local res=list[first]
list[first]=nil
list.first=list.first+1
return res
end

function List.popright(list)
local last=list.last
if last<first then
error(“the list is empty”)
end
local res=list[last]
list[last]=nil
list.last=list.last-1
return res
end

function List.display(list)
if(list.first>list.last) then
error(“the list is empty”,2)
end
for i=list.first ,list.last do
print(list[i])
end
end

mylist=List.new()
List.pushleft(mylist,12)
List.pushleft(mylist,”00″)
List.pushright(mylist,34)
List.pushright(mylist,56)
List.display(mylist)
print()

function newStack ()
return
a[2]=a — 循环表
a.z=a[1] — 共享子表

save(‘a’,a)

© 版权声明

相关文章