queue队列 之 数组实现

时间:2022-06-05 14:33:03

偶然看到的,记录一下,用head用于front操作,tail用于push操作。

缺点消耗空间,速率不知奥,看起来好看一点,,,简单的可以用这个代替一下。

queue队列 之 数组实现queue队列 之 数组实现
int GetH(int x, int y)
{
bool vv[35][35];
memcpy(vv, has,
sizeof(has));
int head = 0, tail = 0, cnt = 0;
int _xx[35], _yy[35];
_xx[tail]
= x;
_yy[tail
++] = y;
while(tail != head)
{
int _x = _xx[head];
int _y = _yy[head];
for(int i = 0; i < 4; i++)
{
int x_ = _x + mo1[i];
int y_ = _y + mo2[i];
if(x_ < m && x_ >= 0 && y_ < n && y_ >= 0 && g[x_][y_] != '#' && !vv[x_][y_])
{
vv[x_][y_]
= true;
_xx[tail]
= x_;
_yy[tail
++] = y_;
cnt
++;
}
}
head
++;
}
return cnt;
}
View Code