为防止广告,目前nocow只有登录用户能够创建新页面。如要创建页面请先登录/注册(新用户需要等待1个小时才能正常使用该功能)。
双端队列
来自NOCOW
目录 |
[编辑] 简介
简单的说就是两边都可以插入,删除的队列。也称双向堆栈。 // By Clarkok http://www.clarkok.com/
[编辑] 声明
我们设true为正向,false为反向。
const delta : array[boolean] of shortint = (-1,1); // 差量 var q:array[integer] of integer; open,close:array[boolean] of integer; // 分别保存队列首尾标志,开始时都为零
[编辑] 操作
[编辑] 入队
procedure add(z:boolean;x:integer); // z为方向 begin inc(open[z],delta[z]); q[open[z]]:=x; end;
[编辑] 出队
function del(z:boolean):integer; begin inc(close[z],delta[z]); del:=q[close[z]]; end;