[code]
queue = {}
function queue.new()
return { first = 1, last = 0 }
end
function queue.push( Q, value)
local last = Q.last + 1
Q.last = last
Q[last] = value
end
function queue.pop(Q)
local first = Q.first
local last = Q.last
if first > last then error("Q is empty") end
local value = Q[first]
Q[first] = nil
if first >= last then
Q.first = 1
Q.last = 0
else
Q.first = first + 1
end
return value
end
function queue.size(Q)
local first,last = Q.first,Q.last
print(string.format("(%d,%d)",first,last))
if (last < first) then return 0 end
return last-first+1
end
nq = queue.new()
print("q'size1="..queue.size(nq))
-- queue.pop(nq)
for i = 1, 10 ,2 do
queue.push( nq, i)
end
print("q'size2="..queue.size(nq))
for m = nq.first,nq.last do
print(""..m.."]="..nq[m])
end
print("first "..nq[nq.first])
local v
v = nq.first print(" v1 =".. v)
v = queue.pop(nq) print("pop = "..v)
v = nq.first print(" v2 =".. v)
v = queue.pop(nq) print("pop = "..v)
for m = nq.first,nq.last do
print(""..m.."]="..nq[m])
end
local n = queue.size(nq)
print("q'size3="..n)
for i=1,n do
v=queue.pop(nq)
print(""..i.."]="..v)
end
print("q'size4="..queue.size(nq))
print("#nq="..#nq)
[/code]
---- output ----
(1,0)
q'size1=0
(1,5)
q'size2=5
1]=1
2]=3
3]=5
4]=7
5]=9
first 1
v1 =1
pop = 1
v2 =2
pop = 3
3]=5
4]=7
5]=9
(3,5)
q'size3=3
1]=5
2]=7
3]=9
(1,0)
q'size4=0
#nq=0
2014年9月27日 星期六
訂閱:
意見 (Atom)
ubuntu kernel 5.4 pop noise (躁音) // 用 這條命令 可 暫時 關閉音效 省電模式, 但 重開機, 問題 仍在. $ sudo echo 0 > /sys/module/snd_hda_intel/parameters/power_s...
-
反同的意見大集結: 1. 應該保障,但是不能說同志婚的主張優於異性婚. 因為民主是算人頭的.需要溝通立法. 必需要消除異性婚的疑慮. 2. 立法院/政府應該推出認識同志的官方資料 並由學者專家認可.立法委員簽名認可. 簡單版/詳盡版. 不宜由同志組...
-
律法從來不保障自由的愛. 律法保障的是理性的價值. 讓愛自由,讓制度理性. 就生養而言. 異性婚 是合乎理性的價值. 同性婚 是不合乎理性的自由. 動物選配偶, 多是荷爾蒙,色彩獨特,再加上近水樓台. 人選配偶, 除了以上的因素,還有地位/財富/顏值等. ...
-
婚姻的意義 婚姻最大的目的是 鼓勵生養 . 對於國家而言,婚姻產生新的公民. 對於家族而言,婚姻延續家族的香火. 對於個人而言,婚姻有生兒育女的可能性. 對於社會而言,婚姻最能穩定家族的結構,(血親制度)確認彼此的關係. 而且在這種婚姻制度裏,個人是要有所犠牲,有所...