local list = {}
function list:InitList(length)
local small_list = {}
small_list.size = length
small_list.length = length
self.small_list = {}
self.small_list.number = {}
for i = 1 , length do
self.small_list.number[i] = 0
end
end
function list:DestoryList()
self.small_list.number = {}
self.small_list.number = nil
end
function list:ClearList()
for i = 1 , #self.small_list.number do
self.small_list.number[i] = 0
end
self.small_list.number = {}
end
function list:ListEmpty()
if not next(self.small_list.number) then
return true
end
return false
end
function list:ListLength()
local num = 0
for i = 1, #self.small_list.number do
num = num + 1
end
return num
end
function list:GetElem(i)
return self.small_list.number[i]
end
function list:LocateElem(num , two_number)
for k ,v in pairs (self.small_list.number) do
if num == v then
two_number = k
return two_number
end
end
return -1
end
function list:PriorElem(num , two_number)
if num < 1 or num >self.small_list.length then
return false
elseif self.small_list.length == 0 then
return false
end
two_number = self.small_list.number[num - 1]
return true and two_number
end
function list:NextElem(num , two_number)
if num < 0 or num >= self.small_list.length then
return false
elseif 0 == self.small_list.length then
return false
end
two_number = self.small_list.number[num + 1]
return true and two_number
end
function list:ListInsert(num , two_number)
self.small_list.length = self.small_list.length + 1
if self.small_list.size == self.small_list.length then
return false
elseif num < 1 or num > self.small_list.length then
return false
end
for i = self.small_list.length - 1 , num, - 1 do
self.small_list.number[i + 1] = self.small_list.number[i]
end
self.small_list.number[num] = two_number
return true
end
function list:ListDelete(num , two_number)
if 0 == self.small_list.length then
return false
elseif num < 1 or num > self.small_list.length then
return false
end
two_number = self.small_list.number[num]
for i = num + 1 , self.small_list.length do
self.small_list.number[i - 1] = self.small_list.number[i]
end
self.small_list.length = self.small_list.length - 1
return true and two_number
end
function list:ListTraverse()
for k , v in pairs (self.small_list.number) do
print(v , "打印线性表中的元素" )
end
end
function list:main()
list:InitList(10)
list:ListInsert(1,2)
list:ListInsert(2,5)
list:ListInsert(3,6)
list:ListInsert(4,7)
list:ListInsert(5,8)
list:ListTraverse()
local a
list:ListTraverse()
end
list:main()
function list:InitList(length)
local small_list = {}
small_list.size = length
small_list.length = length
self.small_list = {}
self.small_list.number = {}
for i = 1 , length do
self.small_list.number[i] = 0
end
end
function list:DestoryList()
self.small_list.number = {}
self.small_list.number = nil
end
function list:ClearList()
for i = 1 , #self.small_list.number do
self.small_list.number[i] = 0
end
self.small_list.number = {}
end
function list:ListEmpty()
if not next(self.small_list.number) then
return true
end
return false
end
function list:ListLength()
local num = 0
for i = 1, #self.small_list.number do
num = num + 1
end
return num
end
function list:GetElem(i)
return self.small_list.number[i]
end
function list:LocateElem(num , two_number)
for k ,v in pairs (self.small_list.number) do
if num == v then
two_number = k
return two_number
end
end
return -1
end
function list:PriorElem(num , two_number)
if num < 1 or num >self.small_list.length then
return false
elseif self.small_list.length == 0 then
return false
end
two_number = self.small_list.number[num - 1]
return true and two_number
end
function list:NextElem(num , two_number)
if num < 0 or num >= self.small_list.length then
return false
elseif 0 == self.small_list.length then
return false
end
two_number = self.small_list.number[num + 1]
return true and two_number
end
function list:ListInsert(num , two_number)
self.small_list.length = self.small_list.length + 1
if self.small_list.size == self.small_list.length then
return false
elseif num < 1 or num > self.small_list.length then
return false
end
for i = self.small_list.length - 1 , num, - 1 do
self.small_list.number[i + 1] = self.small_list.number[i]
end
self.small_list.number[num] = two_number
return true
end
function list:ListDelete(num , two_number)
if 0 == self.small_list.length then
return false
elseif num < 1 or num > self.small_list.length then
return false
end
two_number = self.small_list.number[num]
for i = num + 1 , self.small_list.length do
self.small_list.number[i - 1] = self.small_list.number[i]
end
self.small_list.length = self.small_list.length - 1
return true and two_number
end
function list:ListTraverse()
for k , v in pairs (self.small_list.number) do
print(v , "打印线性表中的元素" )
end
end
function list:main()
list:InitList(10)
list:ListInsert(1,2)
list:ListInsert(2,5)
list:ListInsert(3,6)
list:ListInsert(4,7)
list:ListInsert(5,8)
list:ListTraverse()
local a
list:ListTraverse()
end
list:main()