lua data structure

本文介绍了Lua语言中数组、矩阵和链表的基本操作方法,包括初始化、遍历和修改等,并展示了如何实现简单的队列数据结构及字符串缓冲处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数组
         a = {}
         for i = 1, 1000 do
               a[i] = 0
          end

          print(#a)    -->1000

          a = {}
          for i = -5, 5 do
               a[i] = 0
          end

矩阵

          mt = {}
          for i = 1, N do
               mt[i] = {}
               for j = 1, M do
                    mt[i][j] = 0
               end
          end

          mt = {}
          for i, N do
               for j = 1, M do
                    mt[(i - 1)* M + j] = 0
               end
          end

          将矩阵乘以一个常数
          function mult (a, rowindex, k)
               local row = a[rowindex]
               for i, v in pairs(row) do
                    row[i] = v * k
               end
          end

链表
          list = {next = list, value = v}
          
          遍历列表
          lcoal l = list
          while l  do
               <>
               l = l.next
          end


队列

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

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

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

               function List.popfirst (list)
                    local first = list.first
                    if first > list.last then
                         error("list is empty")
                    end
                    local value = list[first]
                    list[first] = nil
                    list.first = first + 1
                    return value
               end

               function List.poplast (list)
                    local last = list.last
                    if list.first > last then
                         error("list is empty")
                    end
                    local value = list[last]
                    list[last] = nil
                    list.last = last - 1
                    return value
               end

               l = List.new()
               List.pushfirst(l, "sun")
               List.pushfirst(l, "yan")
               print(List.popfirst(l))
               print(List.popfirst(l))

字符串缓冲

          使用函数table.concat
          
          local t = {}
          for line in io.read() do 
               t[#t + 1] = line .. "\n"
          end
          local s = table.concat(t)

           <==>
           local t = {}
          for line in io.lines() do
               t[#t + 1] = line
          end

          local s = table.concat(t, "\n")
          print(s)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值