婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > Lua學(xué)習(xí)筆記之?dāng)?shù)據(jù)結(jié)構(gòu)

Lua學(xué)習(xí)筆記之?dāng)?shù)據(jù)結(jié)構(gòu)

熱門(mén)標(biāo)簽:電腦外呼系統(tǒng)輻射大嗎 智能語(yǔ)音電銷(xiāo)的機(jī)器人 開(kāi)通400電話申請(qǐng)流程 上海企業(yè)外呼系統(tǒng)排名 百度地圖標(biāo)注位置網(wǎng)站 如何利用高德地圖標(biāo)注家 武漢百應(yīng)人工智能電銷(xiāo)機(jī)器人 揚(yáng)州電銷(xiāo)外呼系統(tǒng)軟件 400手機(jī)電話免費(fèi)辦理

最近研究Lua,順便寫(xiě)點(diǎn)筆記吧!數(shù)據(jù)結(jié)構(gòu)是沒(méi)有語(yǔ)言之分的,只不過(guò)不同的語(yǔ)言實(shí)現(xiàn)起來(lái)的語(yǔ)法不同,既然是Lua菜鳥(niǎo),就來(lái)實(shí)現(xiàn)幾個(gè)常用的數(shù)據(jù)結(jié)構(gòu)來(lái)練練語(yǔ)法吧!首先是作為數(shù)據(jù)結(jié)構(gòu)基石的數(shù)組,在Lua中數(shù)組是用表來(lái)實(shí)現(xiàn)的,表是個(gè)強(qiáng)大的東西,能表示太多東西了,當(dāng)表中元素的下標(biāo)都是整數(shù)的時(shí)候,我們把這個(gè)表稱(chēng)作數(shù)組。數(shù)組的大小不固定,可以動(dòng)態(tài)的增長(zhǎng)。

復(fù)制代碼 代碼如下:

--創(chuàng)建一個(gè)簡(jiǎn)單的數(shù)組
local arr1 = {1,2,3,4,5,6}
--遍歷數(shù)組中得每一個(gè)元素
for i,v in ipairs(arr1) do
print(v)
end

--另一種創(chuàng)建數(shù)組的方式
local arr2 = {}
for i=1,10 do
arr2[i] = i
print(arr2[i])
end

--創(chuàng)建數(shù)組,下標(biāo)從2開(kāi)始
local arr2 = {[2]="hello",[3]="xiao",[4]="ta",[5]="zaojiahua"}
--使用迭代器ipairs遍歷的時(shí)候輸出為空值,因?yàn)閍rr2[1]=nil當(dāng)ipairs遇到空值的時(shí)候就返回了
for i,v in ipairs(arr2) do
print(i,v)
end
--這個(gè)時(shí)候需要使用pairs遍歷
for i,v in pairs(arr2) do
print(i,v)
end

創(chuàng)建數(shù)組的時(shí)候整數(shù)下標(biāo)最好從1開(kāi)始,因?yàn)檫@個(gè)值是Lua中默認(rèn)開(kāi)始的下標(biāo),這和其他語(yǔ)言的下標(biāo)從零開(kāi)始有點(diǎn)區(qū)別,如果你采用其他的數(shù)字下標(biāo)開(kāi)始,使用某些Lua庫(kù)的時(shí)候可能不能獲得預(yù)期的結(jié)果。然后就是遍歷數(shù)組的方式,我們用到了迭代器ipairs()和pairs(),這個(gè)使用時(shí)候的區(qū)別代碼已經(jīng)有體現(xiàn)了,ipairs中得i代表的就是整數(shù)下標(biāo),從1開(kāi)始。

有一維數(shù)組當(dāng)然就有多維的,下面來(lái)創(chuàng)建一個(gè)二維數(shù)組,也就是矩陣,其他的類(lèi)推吧。

復(fù)制代碼 代碼如下:

--創(chuàng)建一個(gè)10*5的二維數(shù)組
local int_arr = {}

for i=1,10 do
    int_arr[i] = {}
    for j=1,5 do
        int_arr[i][j] = j
    end
end

--遍歷二維數(shù)組
for i,v in ipairs(int_arr) do
    for j,k in ipairs(v) do
        io.write(k.."\t")
    end
    print("\n")
end


接下來(lái)實(shí)現(xiàn)一個(gè)鏈表,鏈表的每個(gè)節(jié)點(diǎn)用一個(gè)table表示,table中的字段包括指向下一個(gè)節(jié)點(diǎn)的指針和該節(jié)點(diǎn)的數(shù)據(jù)元素,這里只是提供一個(gè)思路,其他的東西可以用的時(shí)候擴(kuò)展。

復(fù)制代碼 代碼如下:

--實(shí)現(xiàn)一個(gè)鏈表
local list = nil
--鏈表元素包含倆個(gè)字段,next代表的是指針,指向下一個(gè)鏈表元素,value代表的是該鏈表元素的值
for i=1,10 do
    list = {next = list,value = i}
end

--鏈表的遍歷
local l = list
while l do
    print(l.value)
    l = l.next
end


接下來(lái)實(shí)現(xiàn)一個(gè)比較有用的數(shù)據(jù)結(jié)構(gòu)——隊(duì)列。我把隊(duì)列封裝在了一個(gè)table表中,關(guān)于隊(duì)列的操作和表示隊(duì)列頭和隊(duì)列尾的指針也封裝在了一起。當(dāng)對(duì)頭等于隊(duì)尾的時(shí)候表示沒(méi)有元素,而這個(gè)隊(duì)列是可以無(wú)限增大的,并沒(méi)有隊(duì)列滿(mǎn)的限制,大家可以根據(jù)自己的需要進(jìn)行擴(kuò)展。

復(fù)制代碼 代碼如下:

--實(shí)現(xiàn)一個(gè)隊(duì)列 包括頭指針first和尾指針last first==last的時(shí)候代表隊(duì)列為空
local Que = {first=0,last=0}

--向隊(duì)列中添加元素,last索引指向最后一個(gè)元素的下一個(gè)元素,first索引指向的是第一個(gè)元素
function Que:push(value)
    local last = self.last
    self[last] = value
    self.last = last+1
end
--移除元素,隊(duì)列的特點(diǎn)是先進(jìn)先出
function Que:pop()
    if self.first == self.last then
        print("隊(duì)列空")
        return nil
    end
    local first = self.first
    self.first = first+1
    return self[first]
end

--顯示隊(duì)列中得元素
function Que:showValue()
    for i=self.first,self.last-1 do
        print("value:"..self[i])
    end
end

--測(cè)試
print("隊(duì)列測(cè)試")
Que:showValue()
Que:push(2)
Que:push(3)
print("push 2,3")
Que:showValue()
Que:push(3)
print("push 3")
Que:showValue()
print("pop:"..Que:pop())
Que:showValue()
print("pop:"..Que:pop())
Que:showValue()
print("push 100")
Que:push(100)
Que:showValue()
print("pop:"..Que:pop())
Que:showValue()
print("pop:"..Que:pop())
Que:showValue()
print("pop:"..Que:pop())

您可能感興趣的文章:
  • Lua學(xué)習(xí)筆記之?dāng)?shù)據(jù)類(lèi)型
  • Lua學(xué)習(xí)筆記之運(yùn)算符和表達(dá)式
  • Lua學(xué)習(xí)筆記之表和函數(shù)
  • Lua基礎(chǔ)教程之賦值語(yǔ)句、表達(dá)式、流程控制、函數(shù)學(xué)習(xí)筆記
  • Lua入門(mén)學(xué)習(xí)筆記
  • Lua中的table學(xué)習(xí)筆記
  • Lua 學(xué)習(xí)筆記之C API 遍歷 Table實(shí)現(xiàn)代碼
  • Lua學(xué)習(xí)筆記之表達(dá)式

標(biāo)簽:新余 江西 宜賓 延邊 武漢 張掖 黑龍江 嘉峪關(guān)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Lua學(xué)習(xí)筆記之?dāng)?shù)據(jù)結(jié)構(gòu)》,本文關(guān)鍵詞  Lua,學(xué)習(xí),筆記,之,數(shù)據(jù)結(jié)構(gòu),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Lua學(xué)習(xí)筆記之?dāng)?shù)據(jù)結(jié)構(gòu)》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Lua學(xué)習(xí)筆記之?dāng)?shù)據(jù)結(jié)構(gòu)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 揭阳市| 阳东县| 缙云县| 淮安市| 土默特左旗| 怀来县| 澜沧| 武功县| 金堂县| 东乌珠穆沁旗| 伊宁县| 云南省| 明星| 新兴县| 清新县| 来安县| 阿勒泰市| 丽江市| 乐亭县| 衡东县| 四子王旗| 夏邑县| 红原县| 新竹市| 林州市| 中方县| 孙吴县| 育儿| 万载县| 吴桥县| 噶尔县| 小金县| 永康市| 武邑县| 阳城县| 乳山市| 农安县| 江北区| 阿克| 绩溪县| 冕宁县|