zoukankan      html  css  js  c++  java
  • Lua初学习 9-14_03 数据结构 ---> 队列 (自己写的 跟书上差不多)

    1:创建一个双向队列

    list = { first =1,last = 0}

    function list:pushFirst(value) --从头放入一个 value
    local f = self.first-1 -- f=0
    self[f] = value --self[0] = value
    self.first =f -- self.f = 0
    --print(self.first,f)
    end

    function list:pushLast(value) --从尾放入一个 value
    local l= self.last+1
    self[l] = value
    self.last = l
    end

    function list:popFirst() --推出第一个value
    if(self.first > self.last) then
    print("警告 : 队列已经空了 ")
    return nil
    end
    --print("进来时候 first index : ",self.first)
    local v = self[self.first]
    --print("推出来的first:",self[self.first])
    self[self.first] = nil
    self.first = self.first + 1
    --print("list first index : ",self.first)
    return v
    end

    function list:popLast() --推出最后一个value
    if(self.first > self.last) then
    print("警告 : 队列已经空了 ")
    return nil
    end
    local v = self[self.last]
    self[self.last] = nil
    self.last =self.last-1
    return v
    end


    list:pushFirst(11)
    list:pushFirst(22)
    list:pushFirst(33)
    list:pushLast(44)
    list:pushLast(55)
    --从前放入3个 从后放入2个 33 22 11 44 55

    print(list:popLast()) --last 55
    list:pushLast(99) -- 33 22 11 44 99
    list:pushFirst("orz") --orz" 33 22 11 44 99
    print(list:popFirst()) --first orz

          ========接下来再推剩下的==========

    print(list:popFirst()) --剩余5   ->orz
    print(list:popFirst()) --剩余4       33
    print(list:popFirst()) --剩余3       22
    print(list:popFirst()) --剩余2       11
    print(list:popFirst()) --剩余1       44
    print(list:popFirst()) --剩余0       99
    print(list:popFirst()) --剩余0       空警告

  • 相关阅读:
    Win10 VMware虚拟机无法打开内核设备“\.Globalvmx86“
    搜索算法总结
    经典排序算法
    Markdown Test
    PAT L2-020 功夫传人【BFS】
    PAT l2-018 多项式A除以多项式B 【多项式+模拟】
    PAT l2-010 排座位 【并查集】
    二叉树的前中后序遍历关系 【非原创】
    PAT L2-005. 集合相似度 【stl set】
    PAT L2-004. 这是二叉搜索树吗?【前序遍历转化为后序遍历】
  • 原文地址:https://www.cnblogs.com/cocotang/p/5871283.html
Copyright © 2011-2022 走看看