没错,因为太弱了, 从图论回归数据结构 , 准备熟练一下
下面的就当成是在写随笔吧!有错误,就请原谅wa , QaQ
// 关于栈
// 数据结构特点 : 先进后出
// 所以从数据模拟的角度来说 , 先弹出下标大的
int s[N] , tt ; // tt 初始化为0
// 在栈顶加入元素
void push(int x)
{
s[++ tt] = x ;
// 先 ++ tt 这样tt的值就是元素个数
}
// 栈是否为空
bool empty()
{
if (tt > 0) return false ;
else return true ;
}
// 返回栈顶元素
int query ()
{
return s[tt] ;
}
// 弹出栈顶元素
void pop()
{
tt -- ;
}
// 关于队列
// 数据结构特点 , 先进先出
// 从数据模拟的角度出发: 就是弹出数组下标小的 ,
// 这样来也能理解 , 栈的tt 有两个作用, 既是我们添加元素是的指引, 也是弹出元素的下标
// 而对于队列 , 就不得不用两个指针了
// 当然了 , 也可以模拟双端队列 , hh
int q[N] , hh = 1 , tt = 0 ;
// 加入元素
void push(int x )
{
q[ ++ tt] = x ;
}
// 弹出队头
void pop()
{
hh ++ ;
}
// 是否为空
bool empty()
{
if(hh <= tt) return false ;
else return true ;
}
// 询问队头
int query()
{
return q[hh] ;
}