5、假设以数组Q[m]存放循环队列中的元素,同时设置一个标志tag,以tag==0和tag== 1来区别在队头指针(front)和队尾指针(rear)相等时,队列状态为“空”还 是“满”。试编写与此结构相应的插入(engueue)和删除(dlqueue)算法
时间: 2023-05-21 10:05:33 浏览: 114
环形队列,用front和rear作为对头和队尾指针,tag表示队列是空还是不空
对于循环队列来说,队列满的条件为 rear+1 == front 或者 rear == m && front == 1。队列空的条件为 rear == front。
插入算法:
1. 判断队列是否满,满则返回错误,否则继续执行
2. 将要插入的元素放入队尾指针处,rear指针后移一位
3. 如果rear指针已经到了数组末尾,将rear指针置为1,表示已经回到队列头部
4. 如果此时队列为空,将tag标志置为1
删除算法:
1. 判断队列是否为空,空则返回错误,否则继续执行
2. 将队头指针处的元素取出并返回,front指针后移一位
3. 如果front指针已经到了数组末尾,将front指针置为1,表示已经回到队列头部
4. 如果此时队列满了,将tag标志置为0
lua closure factory 完整代码:
function createClosure()
local x = 0
return function()
x = x + 1
return x
end
end
-- 此处调用 createClosure() 函数,得到的 result 即为一个闭包,调用 result() 函数即可得到递增的数字序列。
中文加密:
中文加密算法是指将中文文本转换为另一种形式,使其不易被破解,同时保证在解密后能够还原为原文。其中比较常见的一种方式是使用简单替换加密算法,即按照规定的替换表将中文文本中的某些字符替换为另一些字符。例如,将常用的汉字替换为罕用的汉字,或者使用Unicode编码实现加密等。
阅读全文